@@ -30,7 +30,6 @@ func testBuild(t *testing.T, context spec.G, it spec.S) {
30
30
layersDir string
31
31
workingDir string
32
32
cnbDir string
33
- entryResolver * fakes.EntryResolver
34
33
dependencyManager * fakes.DependencyManager
35
34
sbomGenerator * fakes.SBOMGenerator
36
35
files * fakes.FileManager
@@ -49,18 +48,6 @@ func testBuild(t *testing.T, context spec.G, it spec.S) {
49
48
cnbDir , err = os .MkdirTemp ("" , "cnb" )
50
49
Expect (err ).NotTo (HaveOccurred ())
51
50
52
- entryResolver = & fakes.EntryResolver {}
53
- entryResolver .ResolveCall .Returns .BuildpackPlanEntry = packit.BuildpackPlanEntry {
54
- Name : "php" ,
55
- Metadata : map [string ]interface {}{
56
- "version" : "7.2.*" ,
57
- "version-source" : "some-source" ,
58
- },
59
- }
60
-
61
- entryResolver .MergeLayerTypesCall .Returns .Launch = false
62
- entryResolver .MergeLayerTypesCall .Returns .Build = false
63
-
64
51
dependencyManager = & fakes.DependencyManager {}
65
52
dependencyManager .ResolveCall .Returns .Dependency = postal.Dependency {Name : "PHP" }
66
53
dependencyManager .GenerateBillOfMaterialsCall .Returns .BOMEntrySlice = []packit.BOMEntry {
@@ -95,7 +82,7 @@ func testBuild(t *testing.T, context spec.G, it spec.S) {
95
82
buffer = bytes .NewBuffer (nil )
96
83
logEmitter := scribe .NewEmitter (buffer )
97
84
98
- build = phpdist .Build (entryResolver , dependencyManager , files , environment , sbomGenerator , logEmitter , clock )
85
+ build = phpdist .Build (dependencyManager , files , environment , sbomGenerator , logEmitter , clock )
99
86
})
100
87
101
88
it .After (func () {
@@ -147,23 +134,6 @@ func testBuild(t *testing.T, context spec.G, it spec.S) {
147
134
},
148
135
}))
149
136
150
- Expect (entryResolver .ResolveCall .Receives .Name ).To (Equal (phpdist .PHPDependency ))
151
- Expect (entryResolver .ResolveCall .Receives .Entries ).To (Equal ([]packit.BuildpackPlanEntry {
152
- {
153
- Name : "php" ,
154
- Metadata : map [string ]interface {}{
155
- "version" : "7.2.*" ,
156
- "version-source" : "some-source" ,
157
- },
158
- },
159
- }))
160
- Expect (entryResolver .ResolveCall .Receives .Priorities ).To (Equal ([]interface {}{
161
- "BP_PHP_VERSION" ,
162
- "composer.lock" ,
163
- "composer.json" ,
164
- "default-versions" ,
165
- }))
166
-
167
137
Expect (dependencyManager .ResolveCall .Receives .Path ).To (Equal (filepath .Join (cnbDir , "buildpack.toml" )))
168
138
Expect (dependencyManager .ResolveCall .Receives .Id ).To (Equal ("php" ))
169
139
Expect (dependencyManager .ResolveCall .Receives .Version ).To (Equal ("7.2.*" ))
@@ -246,30 +216,6 @@ func testBuild(t *testing.T, context spec.G, it spec.S) {
246
216
})
247
217
248
218
context ("when the build plan entry includes the build, launch flags" , func () {
249
- var workingDir string
250
-
251
- it .Before (func () {
252
- var err error
253
- workingDir , err = os .MkdirTemp ("" , "working-dir" )
254
- Expect (err ).NotTo (HaveOccurred ())
255
-
256
- entryResolver .ResolveCall .Returns .BuildpackPlanEntry = packit.BuildpackPlanEntry {
257
- Name : "php" ,
258
- Metadata : map [string ]interface {}{
259
- "version" : "7.2.*" ,
260
- "version-source" : "some-source" ,
261
- "launch" : true ,
262
- "build" : true ,
263
- },
264
- }
265
- entryResolver .MergeLayerTypesCall .Returns .Launch = true
266
- entryResolver .MergeLayerTypesCall .Returns .Build = true
267
- })
268
-
269
- it .After (func () {
270
- Expect (os .RemoveAll (workingDir )).To (Succeed ())
271
- })
272
-
273
219
it ("marks the php layer as build, cache and launch" , func () {
274
220
result , err := build (packit.BuildContext {
275
221
CNBPath : cnbDir ,
@@ -329,6 +275,53 @@ func testBuild(t *testing.T, context spec.G, it spec.S) {
329
275
})
330
276
})
331
277
278
+ context ("when the build plan entry includes multiples version-sources" , func () {
279
+ it ("has a priority list" , func () {
280
+ Expect (phpdist .EntryPriorities ).To (Equal ([]interface {}{
281
+ "BP_PHP_VERSION" ,
282
+ "composer.lock" ,
283
+ "composer.json" ,
284
+ "default-versions" ,
285
+ }))
286
+ })
287
+
288
+ it ("prioritizes BP_PHP_VERSION" , func () {
289
+ _ , err := build (packit.BuildContext {
290
+ CNBPath : cnbDir ,
291
+ Stack : "some-stack" ,
292
+ WorkingDir : workingDir ,
293
+ Plan : packit.BuildpackPlan {
294
+ Entries : []packit.BuildpackPlanEntry {
295
+ {
296
+ Name : "php" ,
297
+ Metadata : map [string ]interface {}{
298
+ "version" : "version-from-composer.lock" ,
299
+ "version-source" : "composer.lock" ,
300
+ },
301
+ },
302
+ {
303
+ Name : "php" ,
304
+ Metadata : map [string ]interface {}{
305
+ "version" : "version-from-BP_PHP_VERSION" ,
306
+ "version-source" : "BP_PHP_VERSION" ,
307
+ },
308
+ },
309
+ {
310
+ Name : "php" ,
311
+ Metadata : map [string ]interface {}{
312
+ "version" : "version-from-something-else" ,
313
+ "version-source" : "something-else" ,
314
+ },
315
+ },
316
+ },
317
+ },
318
+ Layers : packit.Layers {Path : layersDir },
319
+ })
320
+ Expect (err ).NotTo (HaveOccurred ())
321
+ Expect (dependencyManager .ResolveCall .Receives .Version ).To (Equal ("version-from-BP_PHP_VERSION" ))
322
+ })
323
+ })
324
+
332
325
context ("when there is a dependency cache match" , func () {
333
326
it .Before (func () {
334
327
err := os .WriteFile (filepath .Join (layersDir , "php.toml" ), []byte ("[metadata]\n dependency-sha = \" some-sha\" \n " ), 0644 )
@@ -338,8 +331,6 @@ func testBuild(t *testing.T, context spec.G, it spec.S) {
338
331
Name : "PHP" ,
339
332
SHA256 : "some-sha" ,
340
333
}
341
- entryResolver .MergeLayerTypesCall .Returns .Launch = true
342
- entryResolver .MergeLayerTypesCall .Returns .Build = true
343
334
})
344
335
345
336
it ("exits build process early" , func () {
0 commit comments