@@ -10,18 +10,20 @@ import {
1010} from "./filetree" ;
1111
1212test ( "createFile() set file into the file tree" , ( ) => {
13- let fileTree :FileTree = {
13+ const fileTree :FileTree = {
1414"main.tf" :"terraform" ,
1515images :{ "java.Dockerfile" :"java dockerfile" } ,
1616} ;
17- fileTree = createFile (
17+ const updatedFileTree = createFile (
1818"images/python.Dockerfile" ,
1919fileTree ,
2020"python dockerfile" ,
2121) ;
22- expect ( ( fileTree . images as FileTree ) [ "python.Dockerfile" ] ) . toEqual (
22+ expect ( ( updatedFileTree . images as FileTree ) [ "python.Dockerfile" ] ) . toEqual (
2323"python dockerfile" ,
2424) ;
25+ // Verify the original FileTree was not modified.
26+ expect ( ( fileTree . images as FileTree ) [ "python.Dockerfile" ] ) . toBeUndefined ( ) ;
2527} ) ;
2628
2729test ( "getFileContent() return the file content from the file tree" , ( ) => {
@@ -35,50 +37,56 @@ test("getFileContent() return the file content from the file tree", () => {
3537} ) ;
3638
3739test ( "removeFile() removes a file from a folder" , ( ) => {
38- let fileTree :FileTree = {
40+ const fileTree :FileTree = {
3941"main.tf" :"terraform content" ,
4042images :{
4143"java.Dockerfile" :"java dockerfile" ,
4244"python.Dockerfile" :"python Dockerfile" ,
4345} ,
4446} ;
45- fileTree = removeFile ( "images/python.Dockerfile" , fileTree ) ;
47+ const updatedFileTree = removeFile ( "images/python.Dockerfile" , fileTree ) ;
4648const expectedFileTree = {
4749"main.tf" :"terraform content" ,
4850images :{
4951"java.Dockerfile" :"java dockerfile" ,
5052} ,
5153} ;
52- expect ( expectedFileTree ) . toEqual ( fileTree ) ;
54+ expect ( updatedFileTree ) . toEqual ( expectedFileTree ) ;
55+ // Verify the original FileTree was not modified.
56+ expect ( ( fileTree . images as FileTree ) [ "python.Dockerfile" ] ) . toEqual (
57+ "python Dockerfile" ,
58+ ) ;
5359} ) ;
5460
5561test ( "removeFile() removes a file from root" , ( ) => {
56- let fileTree :FileTree = {
62+ const fileTree :FileTree = {
5763"main.tf" :"terraform content" ,
5864images :{
5965"java.Dockerfile" :"java dockerfile" ,
6066"python.Dockerfile" :"python Dockerfile" ,
6167} ,
6268} ;
63- fileTree = removeFile ( "main.tf" , fileTree ) ;
69+ const updatedFileTree = removeFile ( "main.tf" , fileTree ) ;
6470const expectedFileTree = {
6571images :{
6672"java.Dockerfile" :"java dockerfile" ,
6773"python.Dockerfile" :"python Dockerfile" ,
6874} ,
6975} ;
70- expect ( expectedFileTree ) . toEqual ( fileTree ) ;
76+ expect ( updatedFileTree ) . toEqual ( expectedFileTree ) ;
77+ // Verify the original FileTree was not modified.
78+ expect ( fileTree [ "main.tf" ] ) . toEqual ( "terraform content" ) ;
7179} ) ;
7280
7381test ( "moveFile() moves a file from in file tree" , ( ) => {
74- let fileTree :FileTree = {
82+ const fileTree :FileTree = {
7583"main.tf" :"terraform content" ,
7684images :{
7785"java.Dockerfile" :"java dockerfile" ,
7886"python.Dockerfile" :"python Dockerfile" ,
7987} ,
8088} ;
81- fileTree = moveFile (
89+ const updatedFileTree = moveFile (
8290"images/java.Dockerfile" ,
8391"other/java.Dockerfile" ,
8492fileTree ,
@@ -92,7 +100,9 @@ test("moveFile() moves a file from in file tree", () => {
92100"java.Dockerfile" :"java dockerfile" ,
93101} ,
94102} ;
95- expect ( fileTree ) . toEqual ( expectedFileTree ) ;
103+ expect ( updatedFileTree ) . toEqual ( expectedFileTree ) ;
104+ // Verify the original FileTree was not modified.
105+ expect ( fileTree [ "main.tf" ] ) . toEqual ( "terraform content" ) ;
96106} ) ;
97107
98108test ( "existsFile() returns if there is or not a file" , ( ) => {