@@ -17,74 +17,66 @@ var versions = []string{"2023-01-01", "2023-02-01", "2023-10-01", "2023-11-15",
1717
1818func TestSplitVersions (t * testing.T ) {
1919 cliPath := NewBin (t )
20+ testCases := map [string ]struct {
21+ format string
22+ specType string
23+ env string
24+ }{
25+ "Split filtered specs json dev" : {
26+ format : "json" ,
27+ specType : "filtered" ,
28+ env : "dev" ,
29+ },
30+ "Split filtered specs yaml dev" : {
31+
32+ format : "yaml" ,
33+ specType : "filtered" ,
34+ env : "dev" ,
35+ },
36+ "Split not-filtered specs json dev" : {
37+ format : "json" ,
38+ specType : "not-filtered" ,
39+ env : "dev" ,
40+ },
41+ }
2042
21- t .Run ("Split valid specs json dev" , func (t * testing.T ) {
22- devFolder := "dev"
23- base := NewAtlasJSONBaseSpecPath (t , devFolder )
24- cmd := exec .Command (cliPath ,
25- "split" ,
26- "-s" ,
27- base ,
28- "-o" ,
29- getOutputFolder (t , devFolder )+ "/output.json" ,
30- )
31-
32- var o , e bytes.Buffer
33- cmd .Stdout = & o
34- cmd .Stderr = & e
35- require .NoError (t , cmd .Run (), e .String ())
36-
37- for _ , version := range versions {
38- validateFiles (t , version , devFolder )
39- }
40- })
41-
42- t .Run ("Split valid specs yaml dev" , func (t * testing.T ) {
43- devFolder := "dev"
44- base := NewAtlasYAMLBaseSpecPath (t , devFolder )
45- cmd := exec .Command (cliPath ,
46- "split" ,
47- "-s" ,
48- base ,
49- "-o" ,
50- getOutputFolder (t , devFolder )+ "/output.yaml" ,
51- )
52-
53- var o , e bytes.Buffer
54- cmd .Stdout = & o
55- cmd .Stderr = & e
56- require .NoError (t , cmd .Run (), e .String ())
57-
58- for _ , version := range versions {
59- validateFiles (t , version , devFolder )
60- }
61- })
43+ for name , tc := range testCases {
44+ t .Run (name , func (t * testing.T ) {
45+ folder := tc .env
46+ base := getInputFolder (t , tc .specType , tc .format , folder )
47+ cmd := exec .Command (cliPath ,
48+ "split" ,
49+ "-s" ,
50+ base ,
51+ "-o" ,
52+ getOutputFolder (t , folder )+ "/output." + tc .format ,
53+ "--env" ,
54+ tc .env ,
55+ )
56+
57+ var o , e bytes.Buffer
58+ cmd .Stdout = & o
59+ cmd .Stderr = & e
60+ require .NoError (t , cmd .Run (), e .String ())
61+
62+ for _ , version := range versions {
63+ validateFiles (t , version , folder )
64+ }
65+ })
66+ }
6267}
63- func TestSplitEnvironments (t * testing.T ) {
64- cliPath := NewBin (t )
6568
66- t .Run ("Split valid specs with env=dev" , func (t * testing.T ) {
67- prodFolder := "dev"
68- base := NewValidAtlasSpecWithExtensionsPath (t , prodFolder )
69- cmd := exec .Command (cliPath ,
70- "split" ,
71- "-s" ,
72- base ,
73- "-o" ,
74- getOutputFolder (t , prodFolder )+ "/output.json" ,
75- "--env" ,
76- "dev" ,
77- )
78-
79- var o , e bytes.Buffer
80- cmd .Stdout = & o
81- cmd .Stderr = & e
82- require .NoError (t , cmd .Run (), e .String ())
83-
84- for _ , version := range versions {
85- validateFiles (t , version , prodFolder )
86- }
87- })
69+ func getInputFolder (t * testing.T , specType , format , folder string ) string {
70+ t .Helper ()
71+ if specType == "not-filtered" {
72+ cliPath , err := filepath .Abs ("../../data/split/" + folder + "/openapi-mms-extensions.json" )
73+ require .NoError (t , err )
74+ return cliPath
75+ }
76+
77+ cliPath , err := filepath .Abs ("../../data/split/" + folder + "/openapi-v2." + format )
78+ require .NoError (t , err )
79+ return cliPath
8880}
8981
9082func getOutputFolder (t * testing.T , subFolder string ) string {
@@ -116,7 +108,7 @@ func ValidateVersionedSpec(t *testing.T, correctSpecPath, generatedSpecPath stri
116108 require .NoError (t , err )
117109
118110 message := "Generated spec is not equal to the correct spec for path: " + correctSpecPath + "\n \n " +
119- "oasdiff diff --max-circular-dep 15 " + correctSpecPath + " " + generatedSpecPath + " > diff.yaml"
111+ "oasdiff diff --max-circular-dep 15 " + correctSpecPath + " " + generatedSpecPath + " > diff.yaml\n "
120112
121113 if d .Empty () {
122114 return
0 commit comments