@@ -75,6 +75,19 @@ def test_app_folder_option
7575 end
7676 end
7777
78+ def test_app_volumes
79+ run_generator
80+
81+ assert_compose_file do |compose |
82+ expected_volumes = [ "../../rails_app:/workspaces/rails_app:cached" , "bundle-cache:/home/vscode/.local/share" ]
83+ actual_volumes = compose [ "services" ] [ "rails-app" ] [ "volumes" ]
84+ expected_volumes . each do |volume |
85+ assert_includes actual_volumes , volume
86+ end
87+ assert_equal [ "bundle-cache" , "redis-data" ] , compose [ "volumes" ] . keys
88+ end
89+ end
90+
7891 def test_database_default_sqlite3
7992 run_generator
8093
@@ -100,7 +113,7 @@ def test_database_mariadb_mysql
100113 } ,
101114 }
102115 assert_equal expected_mariadb_config , compose [ "services" ] [ "mariadb" ]
103- assert_includes compose [ "volumes" ] . keys , "mariadb-data"
116+ assert_equal [ "bundle-cache" , "redis-data" , " mariadb-data"] , compose [ "volumes" ] . keys
104117 assert_includes compose [ "services" ] [ "rails-app" ] [ "depends_on" ] , "mariadb"
105118 end
106119
@@ -127,7 +140,7 @@ def test_database_mariadb_trilogy
127140 } ,
128141 }
129142 assert_equal expected_mariadb_config , compose [ "services" ] [ "mariadb" ]
130- assert_includes compose [ "volumes" ] . keys , "mariadb-data"
143+ assert_equal [ "bundle-cache" , "redis-data" , " mariadb-data"] , compose [ "volumes" ] . keys
131144 assert_includes compose [ "services" ] [ "rails-app" ] [ "depends_on" ] , "mariadb"
132145 end
133146
@@ -154,7 +167,7 @@ def test_database_mysql
154167 "networks" => [ "default" ] ,
155168 }
156169 assert_equal expected_mysql_config , compose [ "services" ] [ "mysql" ]
157- assert_includes compose [ "volumes" ] . keys , "mysql-data"
170+ assert_equal [ "bundle-cache" , "redis-data" , " mysql-data"] , compose [ "volumes" ] . keys
158171 assert_includes compose [ "services" ] [ "rails-app" ] [ "depends_on" ] , "mysql"
159172 end
160173
@@ -188,7 +201,7 @@ def test_database_postgresql
188201 }
189202 }
190203 assert_equal expected_postgres_config , compose [ "services" ] [ "postgres" ]
191- assert_includes compose [ "volumes" ] . keys , "postgres-data"
204+ assert_equal [ "bundle-cache" , "redis-data" , " postgres-data"] , compose [ "volumes" ] . keys
192205 assert_includes compose [ "services" ] [ "rails-app" ] [ "depends_on" ] , "postgres"
193206 end
194207
@@ -216,7 +229,7 @@ def test_database_trilogy
216229 "networks" => [ "default" ] ,
217230 }
218231 assert_equal expected_mysql_config , compose [ "services" ] [ "mysql" ]
219- assert_includes compose [ "volumes" ] . keys , "mysql-data"
232+ assert_equal [ "bundle-cache" , "redis-data" , " mysql-data"] , compose [ "volumes" ] . keys
220233 assert_includes compose [ "services" ] [ "rails-app" ] [ "depends_on" ] , "mysql"
221234 end
222235
@@ -275,7 +288,7 @@ def test_redis_option_default
275288 "volumes" => [ "redis-data:/data" ]
276289 }
277290 assert_equal expected_redis_config , compose [ "services" ] [ "redis" ]
278- assert_equal [ "redis-data" ] , compose [ "volumes" ] . keys
291+ assert_equal [ "bundle-cache" , " redis-data"] , compose [ "volumes" ] . keys
279292 end
280293
281294 assert_devcontainer_json_file do |devcontainer_json |
@@ -291,7 +304,7 @@ def test_redis_option_skip
291304 assert_compose_file do |compose |
292305 assert_not_includes compose [ "services" ] [ "rails-app" ] [ "depends_on" ] , "redis"
293306 assert_nil compose [ "services" ] [ "redis" ]
294- assert_nil compose [ "volumes" ]
307+ assert_equal [ "bundle-cache" ] , compose [ "volumes" ] . keys
295308 end
296309
297310 assert_devcontainer_json_file do |devcontainer_json |
@@ -380,7 +393,7 @@ def test_common_config_with_folder(folder_name)
380393 "context" => ".." ,
381394 "dockerfile" => ".devcontainer/Dockerfile"
382395 } ,
383- "volumes" => [ "../../#{ folder_name } :/workspaces/#{ folder_name } :cached" ] ,
396+ "volumes" => [ "../../#{ folder_name } :/workspaces/#{ folder_name } :cached" , "bundle-cache:/home/vscode/.local/share" ] ,
384397 "command" => "sleep infinity"
385398 }
386399 actual_independent_config = compose [ "services" ] [ "rails-app" ] . except ( "depends_on" )
0 commit comments