Some checks failed
CI / Run lints and checks (push) Failing after 47s
CI / Run tests (push) Failing after 1s
CI / Run race tests (push) Failing after 5s
CI / Build CLI docs (push) Has been skipped
CI / Run buf actions (push) Failing after 5s
CodeQL / Analyze (go) (push) Failing after 3s
CodeQL / Analyze (javascript) (push) Failing after 2s
Docker Image Scanners / scanners (push) Failing after 3s
Format / format (push) Failing after 3s
Synchronize Issue Labels / Synchronize Issue Labels (push) Has been skipped
CI / Generate release (push) Has been skipped
CI / Draft newsletter (push) Has been skipped
CI / Pending approval Slack notification (push) Has been skipped
CI / Send newsletter (push) Has been skipped
42 lines
998 B
Go
42 lines
998 B
Go
// Copyright © 2023 Ory Corp
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
package migratest
|
|
|
|
import (
|
|
"encoding/json"
|
|
"os"
|
|
"path/filepath"
|
|
"strings"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func ContainsExpectedIds(t *testing.T, path string, ids []string) {
|
|
files, err := os.ReadDir(path)
|
|
require.NoError(t, err)
|
|
|
|
for _, f := range files {
|
|
if filepath.Ext(f.Name()) == ".json" {
|
|
expected := strings.TrimSuffix(filepath.Base(f.Name()), ".json")
|
|
assert.Contains(t, ids, expected)
|
|
}
|
|
}
|
|
}
|
|
|
|
func CompareWithFixture(t *testing.T, actual interface{}, prefix string, id string) {
|
|
location := filepath.Join("fixtures", prefix, id+".json")
|
|
//#nosec G304 -- false positive
|
|
expected, err := os.ReadFile(location)
|
|
WriteFixtureOnError(t, err, actual, location)
|
|
|
|
actualJSON, err := json.Marshal(actual)
|
|
require.NoError(t, err)
|
|
|
|
if !assert.JSONEq(t, string(expected), string(actualJSON)) {
|
|
WriteFixtureOnError(t, nil, actual, location)
|
|
}
|
|
}
|