MCPcopy Create free account
hub / github.com/GoogleCloudPlatform/buildpacks / TestInstallAngularBuildAdaptor

Function TestInstallAngularBuildAdaptor

pkg/nodejs/angular_test.go:31–88  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

29)
30
31func TestInstallAngularBuildAdaptor(t *testing.T) {
32 testCases := []struct {
33 name string
34 layerMetadata map[string]any
35 angularVersion string
36 mocks []*mockprocess.Mock
37 expectedLayerMetadata map[string]any
38 angularVersionEnvVar string
39 }{
40 {
41 name: "download adaptor not needed since it is cached",
42 layerMetadata: map[string]any{"version": mockLatestAngularAdapterVersion},
43 mocks: []*mockprocess.Mock{
44 mockprocess.New("npm view @apphosting/adapter-angular version", mockprocess.WithStdout(mockLatestAngularAdapterVersion)),
45 },
46 expectedLayerMetadata: map[string]any{"version": mockLatestAngularAdapterVersion},
47 },
48 {
49 name: "download pinned adapter",
50 mocks: []*mockprocess.Mock{
51 mockprocess.New("npm view @apphosting/adapter-angular version", mockprocess.WithStdout(mockLatestAngularAdapterVersion)),
52 mockprocess.New(`npm install --prefix npm_modules @apphosting/adapter-angular@`+mockLatestAngularAdapterVersion, mockprocess.WithStdout("installed adaptor")),
53 },
54 layerMetadata: map[string]any{},
55 expectedLayerMetadata: map[string]any{"version": mockLatestAngularAdapterVersion},
56 },
57 {
58 name: "download adapter version from env var",
59 mocks: []*mockprocess.Mock{
60 mockprocess.New(`npm install --prefix npm_modules @apphosting/adapter-angular@`+"17.2.15", mockprocess.WithStdout("installed adaptor")),
61 },
62 layerMetadata: map[string]any{},
63 expectedLayerMetadata: map[string]any{"version": "17.2.15"},
64 angularVersionEnvVar: "17.2.15",
65 },
66 }
67
68 for _, tc := range testCases {
69 if tc.angularVersionEnvVar != "" {
70 os.Setenv("ANGULAR_ADAPTER_VERSION", tc.angularVersionEnvVar)
71 }
72 t.Run(tc.name, func(t *testing.T) {
73 ctx := gcp.NewContext(getContextOpts(t, tc.mocks)...)
74 layer := &libcnb.Layer{
75 Name: "njsl",
76 Path: t.TempDir(),
77 Metadata: tc.layerMetadata,
78 }
79 if err := InstallAngularBuildAdapter(ctx, layer); err != nil {
80 t.Fatalf("InstallAngularBuildAdaptor() got unexpected error: %v", err)
81 }
82
83 if diff := cmp.Diff(tc.expectedLayerMetadata, layer.Metadata); diff != "" {
84 t.Errorf("InstallAngularBuildAdaptor() mismatch in metadata (-want +got):\n%s", diff)
85 }
86 })
87 }
88}

Callers

nothing calls this directly

Calls 6

NewFunction · 0.92
WithStdoutFunction · 0.92
getContextOptsFunction · 0.85
SetenvMethod · 0.80
TempDirMethod · 0.80

Tested by

no test coverage detected