@@ -18,26 +18,48 @@ import (
18
18
19
19
const (
20
20
metadata = `name: my-app
21
- version: 1.0.0`
22
- yaml = `version: "3.1"
23
-
21
+ version: 1.0.0
22
+ `
23
+ compose = `version: "3.1"
24
24
services:
25
25
web:
26
- image: nginx`
27
- parameters = `foo: bar`
26
+ image: nginx
27
+ `
28
+ params = `foo: bar
29
+ `
28
30
)
29
31
30
32
func TestLoadFromSingleFile (t * testing.T ) {
31
- singlefile := fmt .Sprintf (`%s
32
- ---
33
- %s
34
- ---
35
- %s` , metadata , yaml , parameters )
36
- app , err := LoadFromSingleFile ("my-app" , strings .NewReader (singlefile ))
37
- assert .NilError (t , err )
38
- assert .Assert (t , app != nil )
39
- assert .Assert (t , is .Equal (app .Path , "my-app" ))
40
- assertAppContent (t , app )
33
+ testCases := []struct {
34
+ name string
35
+ file string
36
+ }{
37
+ {
38
+ name : "line-feed" ,
39
+ file : fmt .Sprintf ("%s\n ---\n %s\n ---\n %s" , metadata , compose , params ),
40
+ },
41
+ {
42
+ name : "carriage-return-line-feed" ,
43
+ file : fmt .Sprintf ("%s\r \n ---\r \n %s\r \n ---\r \n %s" , metadata , compose , params ),
44
+ },
45
+ {
46
+ name : "mixed-carriage-return-line-feed" ,
47
+ file : fmt .Sprintf ("%s\r \n ---\r \n %s\r \n ---\n %s" , metadata , compose , params ),
48
+ },
49
+ {
50
+ name : "unordered-documents" ,
51
+ file : fmt .Sprintf ("%s\n ---\n %s\n ---\n %s" , params , metadata , compose ),
52
+ },
53
+ }
54
+ for _ , test := range testCases {
55
+ t .Run (test .name , func (t * testing.T ) {
56
+ app , err := LoadFromSingleFile ("my-app" , strings .NewReader (test .file ))
57
+ assert .NilError (t , err )
58
+ assert .Assert (t , app != nil )
59
+ assert .Assert (t , is .Equal (app .Path , "my-app" ))
60
+ assertAppContent (t , app )
61
+ })
62
+ }
41
63
}
42
64
43
65
func TestLoadFromSingleFileInvalidReader (t * testing.T ) {
@@ -46,17 +68,17 @@ func TestLoadFromSingleFileInvalidReader(t *testing.T) {
46
68
}
47
69
48
70
func TestLoadFromSingleFileMalformed (t * testing.T ) {
49
- _ , err := LoadFromSingleFile ("my-app" , strings .NewReader (`foo
71
+ _ , err := LoadFromSingleFile ("my-app" , strings .NewReader (`foo: foo
50
72
---
51
- bar` ))
73
+ bar: bar ` ))
52
74
assert .ErrorContains (t , err , "malformed single-file application" )
53
75
}
54
76
55
77
func TestLoadFromDirectory (t * testing.T ) {
56
78
dir := fs .NewDir (t , "my-app" ,
57
79
fs .WithFile (internal .MetadataFileName , metadata ),
58
- fs .WithFile (internal .ParametersFileName , parameters ),
59
- fs .WithFile (internal .ComposeFileName , yaml ),
80
+ fs .WithFile (internal .ParametersFileName , params ),
81
+ fs .WithFile (internal .ComposeFileName , compose ),
60
82
)
61
83
defer dir .Remove ()
62
84
app , err := LoadFromDirectory (dir .Path ())
@@ -69,8 +91,8 @@ func TestLoadFromDirectory(t *testing.T) {
69
91
func TestLoadFromDirectoryDeprecatedSettings (t * testing.T ) {
70
92
dir := fs .NewDir (t , "my-app" ,
71
93
fs .WithFile (internal .MetadataFileName , metadata ),
72
- fs .WithFile (internal .DeprecatedSettingsFileName , parameters ),
73
- fs .WithFile (internal .ComposeFileName , yaml ),
94
+ fs .WithFile (internal .DeprecatedSettingsFileName , params ),
95
+ fs .WithFile (internal .ComposeFileName , compose ),
74
96
)
75
97
defer dir .Remove ()
76
98
app , err := LoadFromDirectory (dir .Path ())
@@ -97,8 +119,8 @@ func createAppTar(t *testing.T) *fs.File {
97
119
t .Helper ()
98
120
dir := fs .NewDir (t , "my-app" ,
99
121
fs .WithFile (internal .MetadataFileName , metadata ),
100
- fs .WithFile (internal .ParametersFileName , parameters ),
101
- fs .WithFile (internal .ComposeFileName , yaml ),
122
+ fs .WithFile (internal .ParametersFileName , params ),
123
+ fs .WithFile (internal .ComposeFileName , compose ),
102
124
)
103
125
defer dir .Remove ()
104
126
r , err := archive .TarWithOptions (dir .Path (), & archive.TarOptions {
@@ -117,9 +139,9 @@ func assertContentIs(t *testing.T, actual []byte, expected string) {
117
139
118
140
func assertAppContent (t * testing.T , app * types.App ) {
119
141
assert .Assert (t , is .Len (app .ParametersRaw (), 1 ))
120
- assertContentIs (t , app .ParametersRaw ()[0 ], parameters )
142
+ assertContentIs (t , app .ParametersRaw ()[0 ], params )
121
143
assert .Assert (t , is .Len (app .Composes (), 1 ))
122
- assertContentIs (t , app .Composes ()[0 ], yaml )
144
+ assertContentIs (t , app .Composes ()[0 ], compose )
123
145
assertContentIs (t , app .MetadataRaw (), metadata )
124
146
}
125
147
0 commit comments