@@ -9,6 +9,7 @@ import { OutputBundleOptions } from "../interface.js";
99describe ( "build commands" , ( ) => {
1010 let tmpDir : string ;
1111 let outputBundleOptions : OutputBundleOptions ;
12+ let defaultAngularVersion : string ;
1213 beforeEach ( ( ) => {
1314 tmpDir = generateTmpDir ( ) ;
1415 outputBundleOptions = {
@@ -20,16 +21,18 @@ describe("build commands", () => {
2021 serverFilePath : resolve ( tmpDir , ".apphosting" , "dist" , "server" , "server.mjs" ) ,
2122 needsServerGenerated : false ,
2223 } ;
24+ defaultAngularVersion = "17.3.8" ;
2325 } ) ;
2426
2527 it ( "expects all output bundle files to be generated" , async ( ) => {
26- const { generateOutputDirectory, validateOutputDirectory } = await importUtils ;
28+ const { generateOutputDirectory, validateOutputDirectory, createMetadata } = await importUtils ;
2729 const files = {
2830 "dist/test/browser/browserfile" : "" ,
2931 "dist/test/server/server.mjs" : "" ,
3032 } ;
33+ const packageVersion = createMetadata ( defaultAngularVersion ) . adapterVersion ;
3134 generateTestFiles ( tmpDir , files ) ;
32- await generateOutputDirectory ( tmpDir , outputBundleOptions ) ;
35+ await generateOutputDirectory ( tmpDir , outputBundleOptions , defaultAngularVersion ) ;
3336 await validateOutputDirectory ( outputBundleOptions ) ;
3437
3538 const expectedFiles = {
@@ -42,6 +45,11 @@ neededDirs:
4245staticAssets:
4346 - .apphosting/dist/browser
4447env: []
48+ metadata:
49+ adapterPackageName: "@apphosting/adapter-angular"
50+ adapterVersion: ${ packageVersion }
51+ framework: angular
52+ frameworkVersion: 17.3.8
4553` ,
4654 } ;
4755 validateTestFiles ( tmpDir , expectedFiles ) ;
@@ -56,22 +64,12 @@ env: []
5664 generateTestFiles ( tmpDir , files ) ;
5765 await generateOutputDirectory ( tmpDir , outputBundleOptions , "17.3.2" ) ;
5866
59- const expectedFiles = {
60- ".apphosting/dist/browser/browserfile" : "" ,
61- ".apphosting/dist/server/server.mjs" : "" ,
62- ".apphosting/bundle.yaml" : `
63- runCommand: node .apphosting/dist/server/server.mjs
64- neededDirs:
65- - .apphosting
66- staticAssets:
67- - .apphosting/dist/browser
68- env:
67+ const expectedContents = `env:
6968 - variable: SSR_PORT
7069 value: "8080"
7170 availability: RUNTIME
72- ` ,
73- } ;
74- validateTestFiles ( tmpDir , expectedFiles ) ;
71+ ` ;
72+ validateFileExistsAndContains ( tmpDir , ".apphosting/bundle.yaml" , expectedContents ) ;
7573 } ) ;
7674
7775 it ( "test failed validateOutputDirectory" , async ( ) => {
8179 "dist/test/server/notserver.mjs" : "" ,
8280 } ;
8381 generateTestFiles ( tmpDir , files ) ;
84- await generateOutputDirectory ( tmpDir , outputBundleOptions ) ;
82+ await generateOutputDirectory ( tmpDir , outputBundleOptions , defaultAngularVersion ) ;
8583 assert . rejects ( async ( ) => await validateOutputDirectory ( outputBundleOptions ) ) ;
8684 } ) ;
8785
@@ -134,3 +132,17 @@ function validateTestFiles(baseDir: string, expectedFiles: Object): void {
134132 assert . deepEqual ( ignoreBlankLines ( contents ) , ignoreBlankLines ( expectedContents ) ) ;
135133 } ) ;
136134}
135+
136+ function validateFileExistsAndContains (
137+ baseDir : string ,
138+ expectedFileName : string ,
139+ expectedContents : string ,
140+ ) : void {
141+ const fileToRead = path . join ( baseDir , expectedFileName ) ;
142+ assert . ok ( fs . existsSync ( fileToRead ) , `File '${ fileToRead } ' does not exist.` ) ;
143+ const contents = fs . readFileSync ( fileToRead ) . toString ( ) ;
144+ assert . ok (
145+ contents . includes ( expectedContents ) ,
146+ `Actual contents do not contain expected contents.\nExpected contained contents:\n${ expectedContents } \nActual:\n${ contents } ` ,
147+ ) ;
148+ }
0 commit comments