@@ -472,7 +472,7 @@ RUN echo hi2
472472` , string (buf ))
473473}
474474
475- func TestFolderAddSnippet_InsertsSnippetsInDockerfile (t * testing.T ) {
475+ func TestFolderAddSnippet_InsertsTextSnippetsInDockerfile (t * testing.T ) {
476476
477477 root , _ := ioutil .TempDir ("" , "devcontainer*" )
478478 defer os .RemoveAll (root )
@@ -539,6 +539,77 @@ RUN echo hi2
539539` , string (buf ))
540540}
541541
542+ func TestFolderAddSnippet_InsertsFileSnippetInDockerfile (t * testing.T ) {
543+
544+ root , _ := ioutil .TempDir ("" , "devcontainer*" )
545+ defer os .RemoveAll (root )
546+
547+ // set up snippet
548+ snippetFolder := filepath .Join (root , "snippets/test1" )
549+ _ = os .MkdirAll (snippetFolder , 0755 )
550+ snippetJSONFilename := filepath .Join (snippetFolder , "snippet.json" )
551+ _ = ioutil .WriteFile (snippetJSONFilename , []byte (`{
552+ "actions": [
553+ {
554+ "type": "dockerfileSnippet",
555+ "content": "ENV FOO=BAR"
556+ },
557+ {
558+ "type": "dockerfileSnippet",
559+ "contentPath": "Dockerfile"
560+ }
561+ ]
562+ }` ), 0755 )
563+ snippetDockerfileFilename := filepath .Join (snippetFolder , "Dockerfile" )
564+ _ = ioutil .WriteFile (snippetDockerfileFilename , []byte (`# from snippet file
565+ ENV WIBBLE BIBBLE
566+ ` ), 0755 )
567+
568+ // set up devcontainer
569+ targetFolder := filepath .Join (root , "target" )
570+ devcontainerFolder := filepath .Join (targetFolder , ".devcontainer" )
571+ _ = os .MkdirAll (devcontainerFolder , 0755 )
572+
573+ _ = ioutil .WriteFile (filepath .Join (devcontainerFolder , "Dockerfile" ), []byte (`FROM foo
574+ RUN echo hi
575+
576+ # __DEVCONTAINER_SNIPPET_INSERT__
577+
578+ RUN echo hi2
579+ ` ), 0755 )
580+ _ = ioutil .WriteFile (filepath .Join (devcontainerFolder , "devcontainer.json" ), []byte (`{
581+ "name" : "testname"
582+ }` ), 0755 )
583+
584+ // Add snippet
585+ snippet := DevcontainerSnippet {
586+ Name : "test" ,
587+ Path : snippetFolder ,
588+ Type : DevcontainerSnippetTypeFolder ,
589+ }
590+ err := addSnippetToDevcontainer (targetFolder , & snippet )
591+ if ! assert .NoError (t , err ) {
592+ return
593+ }
594+
595+ buf , err := ioutil .ReadFile (filepath .Join (devcontainerFolder , "Dockerfile" ))
596+ if ! assert .NoError (t , err ) {
597+ return
598+ }
599+ assert .Equal (t , `FROM foo
600+ RUN echo hi
601+
602+ ENV FOO=BAR
603+
604+ # from snippet file
605+ ENV WIBBLE BIBBLE
606+
607+ # __DEVCONTAINER_SNIPPET_INSERT__
608+
609+ RUN echo hi2
610+ ` , string (buf ))
611+ }
612+
542613func TestFolderAddSnippet_PerformsSubstitutionWithoutUserName (t * testing.T ) {
543614
544615 root , _ := ioutil .TempDir ("" , "devcontainer*" )
0 commit comments