@@ -15,6 +15,7 @@ import { IBedrockFile, IHelmConfig, IMaintainersFile } from "../types";
1515import {
1616 addNewServiceToBedrockFile ,
1717 addNewServiceToMaintainersFile ,
18+ generateDockerfile ,
1819 generateGitIgnoreFile ,
1920 generateHldAzurePipelinesYaml
2021} from "./fileutils" ;
@@ -197,3 +198,41 @@ describe("Adding a new service to a Bedrock file", () => {
197198 ) ;
198199 } ) ;
199200} ) ;
201+
202+ describe ( "generating service Dockerfile" , ( ) => {
203+ const targetDirectory = "my-new-service" ;
204+
205+ beforeEach ( ( ) => {
206+ mockFs ( {
207+ "my-new-service" : { }
208+ } ) ;
209+ } ) ;
210+ afterEach ( ( ) => {
211+ mockFs . restore ( ) ;
212+ } ) ;
213+
214+ it ( "should not do anything if file exist" , async ( ) => {
215+ const mockFsOptions = {
216+ [ `${ targetDirectory } /Dockerfile` ] : "hello!!!!"
217+ } ;
218+ mockFs ( mockFsOptions ) ;
219+
220+ const writeSpy = jest . spyOn ( fs , "writeFileSync" ) ;
221+ generateDockerfile ( targetDirectory ) ;
222+ expect ( writeSpy ) . not . toBeCalled ( ) ;
223+ } ) ;
224+
225+ it ( "should generate the file if one does not exist" , async ( ) => {
226+ const writeSpy = jest . spyOn ( fs , "writeFileSync" ) ;
227+ generateDockerfile ( targetDirectory ) ;
228+
229+ const absTargetPath = path . resolve ( targetDirectory ) ;
230+ const expectedGitIgnoreFilePath = `${ absTargetPath } /Dockerfile` ;
231+
232+ expect ( writeSpy ) . toBeCalledWith (
233+ expectedGitIgnoreFilePath ,
234+ "FROM alpine\nRUN echo 'hello world'" ,
235+ "utf8"
236+ ) ;
237+ } ) ;
238+ } ) ;
0 commit comments