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

waitlisttest

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: 9 Imported by: 0

Documentation

Overview

Package waitlisttest provides a backend-agnostic conformance suite for the waitlist.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.

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 waitlist.Store
	AppID id.AppID
	// OtherAppID is a second tenant. Waitlist entries are keyed by email
	// within an app, so the interesting cases all involve two apps.
	OtherAppID id.AppID
	// EnforcesUniqueEmail says whether this backend rejects a second entry
	// for the same address in the same app. Every backend does now, so every
	// backend sets it. The flag stays because it is what made the gap visible
	// as a skip while mongo was missing the index, and a future backend
	// arriving without one should report the same way rather than passing
	// a case it never ran.
	EnforcesUniqueEmail bool
}

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

Jump to

Keyboard shortcuts

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