@@ -28,11 +28,14 @@ import (
28
28
"golang.org/x/tools/txtar"
29
29
30
30
"cuelang.org/go/cue"
31
+ "cuelang.org/go/cue/ast"
32
+ "cuelang.org/go/cue/cuecontext"
31
33
"cuelang.org/go/cue/errors"
32
34
"cuelang.org/go/cue/format"
33
35
"cuelang.org/go/encoding/json"
34
36
"cuelang.org/go/encoding/openapi"
35
37
"cuelang.org/go/encoding/yaml"
38
+ "cuelang.org/go/internal"
36
39
"cuelang.org/go/internal/cuetest"
37
40
)
38
41
@@ -57,17 +60,18 @@ func TestDecode(t *testing.T) {
57
60
58
61
cfg := & openapi.Config {PkgName : "foo" }
59
62
60
- r := & cue.Runtime {}
61
- var in * cue.Instance
63
+ var inFile * ast.File
62
64
var out , errout []byte
63
65
outIndex := - 1
64
66
65
67
for i , f := range a .Files {
66
68
switch path .Ext (f .Name ) {
67
69
case ".json" :
68
- in , err = json .Decode (r , f .Name , f .Data )
70
+ var inExpr ast.Expr
71
+ inExpr , err = json .Extract (f .Name , f .Data )
72
+ inFile = internal .ToFile (inExpr )
69
73
case ".yaml" :
70
- in , err = yaml .Decode ( r , f .Name , f .Data )
74
+ inFile , err = yaml .Extract ( f .Name , f .Data )
71
75
case ".cue" :
72
76
out = f .Data
73
77
outIndex = i
@@ -78,8 +82,13 @@ func TestDecode(t *testing.T) {
78
82
if err != nil {
79
83
t .Fatal (err )
80
84
}
85
+ ctx := cuecontext .New ()
86
+ in := ctx .BuildFile (inFile )
87
+ if err := in .Err (); err != nil {
88
+ t .Fatal (err )
89
+ }
81
90
82
- expr , err := openapi .Extract (in , cfg )
91
+ gotFile , err := openapi .Extract (in , cfg )
83
92
if err != nil && errout == nil {
84
93
t .Fatal (errors .Details (err , nil ))
85
94
}
@@ -91,17 +100,18 @@ func TestDecode(t *testing.T) {
91
100
t .Error (diff )
92
101
}
93
102
94
- if expr != nil {
95
- b , err := format .Node (expr , format .Simplify ())
96
- if err != nil {
97
- t .Fatal (err )
98
- }
99
-
103
+ if gotFile != nil {
100
104
// verify the generated CUE.
101
- if _ , err = r .Compile (fullpath , b ); err != nil {
105
+ v := ctx .BuildFile (gotFile , cue .Filename (fullpath ))
106
+ if err := v .Err (); err != nil {
102
107
t .Fatal (errors .Details (err , nil ))
103
108
}
104
109
110
+ b , err := format .Node (gotFile , format .Simplify ())
111
+ if err != nil {
112
+ t .Fatal (err )
113
+ }
114
+
105
115
b = bytes .TrimSpace (b )
106
116
out = bytes .TrimSpace (out )
107
117
0 commit comments