MCPcopy Index your code
hub / github.com/coder/coder / TestGeneration

Function TestGeneration

scripts/apitypings/main_test.go:24–77  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

22var updateGoldenFiles = flag.Bool("update", false, "Update golden files")
23
24func TestGeneration(t *testing.T) {
25 t.Parallel()
26 files, err := os.ReadDir("testdata")
27 require.NoError(t, err, "read dir")
28
29 for _, f := range files {
30 if !f.IsDir() {
31 // Only test directories
32 continue
33 }
34 t.Run(f.Name(), func(t *testing.T) {
35 t.Parallel()
36 dir := filepath.Join(".", "testdata", f.Name())
37
38 gen, err := guts.NewGolangParser()
39 if err != nil {
40 require.NoError(t, err)
41 }
42 err = gen.IncludeGenerate("./" + dir)
43 require.NoError(t, err)
44
45 // Include minimal references needed for tests that use external types.
46 for pkg, prefix := range map[string]string{
47 "github.com/google/uuid": "",
48 } {
49 require.NoError(t, gen.IncludeReference(pkg, prefix))
50 }
51
52 err = TypeMappings(gen)
53 require.NoError(t, err)
54
55 ts, err := gen.ToTypescript()
56 require.NoError(t, err)
57
58 TSMutations(ts)
59
60 output, err := ts.Serialize()
61 require.NoError(t, err)
62
63 golden := filepath.Join(dir, f.Name()+".ts")
64 expected, err := os.ReadFile(golden)
65 require.NoErrorf(t, err, "read file %s", golden)
66 expectedString := strings.TrimSpace(string(expected))
67 output = strings.TrimSpace(output)
68 if *updateGoldenFiles {
69 // nolint:gosec
70 err := os.WriteFile(golden, []byte(output+"\n"), 0o644)
71 require.NoError(t, err, "write golden file")
72 } else {
73 require.Equal(t, expectedString, output, "matched output")
74 }
75 })
76 }
77}

Callers

nothing calls this directly

Calls 8

TypeMappingsFunction · 0.85
TSMutationsFunction · 0.85
ReadDirMethod · 0.80
RunMethod · 0.65
NameMethod · 0.65
ReadFileMethod · 0.65
WriteFileMethod · 0.65
EqualMethod · 0.45

Tested by

no test coverage detected