Why
Every test for internal/onepassword runs against a hand-written fake implementing API/LookupAPI/MutationAPI. Nothing in this package has ever talked to the real 1Password service. This is the oldest provider in the codebase and has had the most review passes, but "reviewed carefully" and "run against the real SDK" are still two different bars.
What to verify against a real 1Password account
Write path (Adapter.WriteMany)
Read path (Adapter.ReadMany)
Caching (listVaults/listItems)
Auth
Scope
Needs a real (disposable) 1Password account/vault, ideally tested with both a service account token and desktop-app integration to cover both auth paths.
Why
Every test for
internal/onepasswordruns against a hand-written fake implementingAPI/LookupAPI/MutationAPI. Nothing in this package has ever talked to the real 1Password service. This is the oldest provider in the codebase and has had the most review passes, but "reviewed carefully" and "run against the real SDK" are still two different bars.What to verify against a real 1Password account
Write path (
Adapter.WriteMany)interface{ VersionConflict() bool }this code type-asserts against (versionConflictinwrite.go) — this is checked viaerrors.As, so it depends on the concrete error type the SDK returns matching that method set, which has only ever been simulated in the fake.Ambiguouserror path, against a real item that has genuinely duplicate field or section titles (not just the fake's synthetic setup).Category != op.ItemCategorySecureNoterejection against a real non-Secure-Note item.Read path (
Adapter.ReadMany)section/fieldkey syntax) against real multi-section items.Caching (
listVaults/listItems)uno syncrun — e.g. a template that both creates a new item in a vault and then, in a later mapping in the same run, expects to find that item — since the cache would still reflect the pre-creation vault listing.Auth
OP_SERVICE_ACCOUNT_TOKENandOP_ACCOUNT(desktop integration) code paths both actually authenticate against the real service, not just construct a client without erroring.Scope
Needs a real (disposable) 1Password account/vault, ideally tested with both a service account token and desktop-app integration to cover both auth paths.