blob: ebd53cdf4365549c172323397280ef06cc9b2b7f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
// SPDX-FileCopyrightText: 2026 Stefan Majewsky <majewsky@gmx.net>
// SPDX-License-Identifier: Apache-2.0
// Package pgtest contains test assertions for checking the contents of PostgreSQL databases.
package pgtest
import (
"go.xyrillian.de/gg/assert"
"go.xyrillian.de/gg/gsql"
)
// Tracker keeps a copy of the database contents and allows for checking the database contents (or changes made to them) during tests.
type Tracker struct {
t assert.TestingTB
dbh gsql.Handle
s Snapshot
}
// NewTracker creates a new Tracker.
//
// The initial creation involves taking a snapshot, which is returned as a second value.
// This is an optimization, since it is often desirable to assert on the full DB contents when creating the tracker.
// Calling [Tracker.DBContent] directly after [NewTracker] would take a superfluous second snapshot.
func NewTracker(t assert.TestingTB, db gsql.Handle) (*Tracker, Snapshot) {
panic("TODO")
}
// DBChanges produces a diff of the current database contents against the state at the last Tracker call,
// as a set of INSERT/UPDATE/DELETE statements on which test assertions can be executed.
func (t *Tracker) DBChanges() Snapshot {
panic("TODO")
}
// DBContent produces a dump of the current database contents,
// as a sequence of INSERT statements on which test assertions can be executed.
func (t *Tracker) DBContent() Snapshot {
panic("TODO")
}
|