Help us shape the future of Go! Take the 2026 Go Developer Survey

consenttest

package
v1.9.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 2, 2026 License: MIT Imports: 7 Imported by: 0

Documentation

Overview

Package consenttest provides a backend-agnostic conformance suite for the consent.Store interface. Every backend (memory, sqlite, postgres, mongo) is expected to pass the same contract, so behavioral drift between them is caught here rather than in production.

Consent records are the evidence that someone agreed to something, so the cases lean on the parts a regulator would ask about: that a grant for one purpose does not imply another, that revocation is recorded with a time, and that one tenant cannot read another's record of who agreed to what.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func RunConformance

func RunConformance(t *testing.T, newFixture Factory, skip ...string)

RunConformance runs every contract test against fixtures from newFixture.

Types

type Factory

type Factory func(t *testing.T) Fixture

Factory builds a fresh, empty, migrated fixture for a single test.

type Fixture

type Fixture struct {
	Store  consent.Store
	AppID  id.AppID
	UserID id.UserID
	// OtherUserID is a second user under the same app, and OtherAppID a
	// second tenant. Consent is keyed on user, app and purpose together, so
	// both boundaries need proving.
	OtherUserID  id.UserID
	OtherAppID   id.AppID
	OtherAppUser id.UserID
}

Fixture is one backend ready to test, plus the rows its records hang off.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL