@@ -87,16 +87,35 @@ func TestCompileWithFeatures(t *testing.T) {
87
87
dc , err := devcontainer .Parse ([]byte (raw ))
88
88
require .NoError (t , err )
89
89
fs := memfs .New ()
90
- params , err := dc .Compile (fs , "" , magicDir , "" , "" , false , os .LookupEnv )
91
- require .NoError (t , err )
92
90
93
- // We have to SHA because we get a different MD5 every time!
94
91
featureOneMD5 := md5 .Sum ([]byte (featureOne ))
95
92
featureOneDir := fmt .Sprintf ("/.envbuilder/features/one-%x" , featureOneMD5 [:4 ])
96
93
featureTwoMD5 := md5 .Sum ([]byte (featureTwo ))
97
94
featureTwoDir := fmt .Sprintf ("/.envbuilder/features/two-%x" , featureTwoMD5 [:4 ])
98
95
99
- require .Equal (t , `FROM localhost:5000/envbuilder-test-codercom-code-server:latest
96
+ t .Run ("WithoutBuildContexts" , func (t * testing.T ) {
97
+ params , err := dc .Compile (fs , "" , magicDir , "" , "" , false , os .LookupEnv )
98
+ require .NoError (t , err )
99
+
100
+ require .Equal (t , `FROM localhost:5000/envbuilder-test-codercom-code-server:latest
101
+
102
+ USER root
103
+ # Rust tomato - Example description!
104
+ WORKDIR ` + featureOneDir + `
105
+ ENV TOMATO=example
106
+ RUN _CONTAINER_USER="1000" _REMOTE_USER="1000" ./install.sh
107
+ # Go potato - Example description!
108
+ WORKDIR ` + featureTwoDir + `
109
+ ENV POTATO=example
110
+ RUN VERSION="potato" _CONTAINER_USER="1000" _REMOTE_USER="1000" ./install.sh
111
+ USER 1000` , params .DockerfileContent )
112
+ })
113
+
114
+ t .Run ("WithBuildContexts" , func (t * testing.T ) {
115
+ params , err := dc .Compile (fs , "" , magicDir , "" , "" , false , os .LookupEnv )
116
+ require .NoError (t , err )
117
+
118
+ require .Equal (t , `FROM localhost:5000/envbuilder-test-codercom-code-server:latest
100
119
101
120
USER root
102
121
# Rust tomato - Example description!
@@ -108,6 +127,12 @@ WORKDIR `+featureTwoDir+`
108
127
ENV POTATO=example
109
128
RUN VERSION="potato" _CONTAINER_USER="1000" _REMOTE_USER="1000" ./install.sh
110
129
USER 1000` , params .DockerfileContent )
130
+
131
+ require .Equal (t , map [string ]string {
132
+ "coder/one" : featureOneDir ,
133
+ "coder/two" : featureTwoDir ,
134
+ }, params .FeatureContexts )
135
+ })
111
136
}
112
137
113
138
func TestCompileDevContainer (t * testing.T ) {
0 commit comments