snapshot of https://github.com/ent/ent.git (master, 2026-09-15; blobs > 131072B omitted)
This commit is contained in:
70
entc/internal/snapshot_test.go
Normal file
70
entc/internal/snapshot_test.go
Normal file
@@ -0,0 +1,70 @@
|
||||
// Copyright 2019-present Facebook Inc. All rights reserved.
|
||||
// This source code is licensed under the Apache 2.0 license found
|
||||
// in the LICENSE file in the root directory of this source tree.
|
||||
|
||||
package internal
|
||||
|
||||
import (
|
||||
"math/rand"
|
||||
"os"
|
||||
"os/exec"
|
||||
"path/filepath"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"entgo.io/ent/entc/gen"
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestSnapshot_Restore(t *testing.T) {
|
||||
t.Log("Running snapshot-restore integration test")
|
||||
const testPackage = "../integration/privacy/ent"
|
||||
err := addConflicts(testPackage)
|
||||
require.NoError(t, err)
|
||||
storage, err := gen.NewStorage("sql")
|
||||
require.NoError(t, err)
|
||||
snap := &Snapshot{
|
||||
Path: filepath.Join(testPackage, "internal/schema.go"),
|
||||
Config: &gen.Config{
|
||||
Storage: storage,
|
||||
Target: testPackage,
|
||||
Schema: filepath.Join(testPackage, "schema"),
|
||||
Header: `
|
||||
// Copyright 2019-present Facebook Inc. All rights reserved.
|
||||
// This source code is licensed under the Apache 2.0 license found
|
||||
// in the LICENSE file in the root directory of this source tree.
|
||||
|
||||
// Code generated by ent, DO NOT EDIT.
|
||||
`,
|
||||
}}
|
||||
require.NoError(t, snap.Restore())
|
||||
err = exec.Command("go", "generate", testPackage).Run()
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
// addConflicts adds VCS conflicts to the files that match the given patterns.
|
||||
func addConflicts(dir string) error {
|
||||
rand.Seed(time.Now().UnixNano())
|
||||
infos, err := os.ReadDir(dir)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
for _, info := range infos {
|
||||
if info.IsDir() || info.Name() == "generate.go" {
|
||||
continue
|
||||
}
|
||||
path := filepath.Join(dir, info.Name())
|
||||
fi, err := os.OpenFile(path, os.O_WRONLY|os.O_APPEND, 0644)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if _, err := fi.WriteString("\n" + conflictMarker); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := fi.Close(); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
Reference in New Issue
Block a user