5
5
require "generators/shared_generator_tests"
6
6
7
7
DEFAULT_APP_FILES = %w(
8
- .devcontainer/Dockerfile
9
- .devcontainer/compose.yaml
10
- .devcontainer/devcontainer.json
11
8
.dockerignore
12
9
.git
13
10
.gitattributes
@@ -1050,9 +1047,6 @@ def test_inclusion_of_ruby_version
1050
1047
1051
1048
ruby_version = "#{ Gem ::Version . new ( Gem ::VERSION ) >= Gem ::Version . new ( "3.3.13" ) ? Gem . ruby_version : RUBY_VERSION } "
1052
1049
1053
- assert_file ".devcontainer/Dockerfile" do |content |
1054
- assert_match ( /ARG RUBY_VERSION=#{ ruby_version } $/ , content )
1055
- end
1056
1050
assert_file "Dockerfile" do |content |
1057
1051
assert_match ( /ARG RUBY_VERSION=#{ ruby_version } / , content )
1058
1052
end
@@ -1275,7 +1269,7 @@ def test_name_option
1275
1269
end
1276
1270
1277
1271
def test_devcontainer
1278
- run_generator [ destination_root , "--name=my-app" ]
1272
+ run_generator [ destination_root , "--devcontainer" , "-- name=my-app"]
1279
1273
1280
1274
assert_devcontainer_json_file do |content |
1281
1275
assert_equal "my_app" , content [ "name" ]
@@ -1329,7 +1323,7 @@ def test_devcontainer
1329
1323
end
1330
1324
1331
1325
def test_devcontainer_no_redis_skipping_action_cable_and_active_job
1332
- run_generator [ destination_root , "--skip-action-cable" , "--skip-active-job" ]
1326
+ run_generator [ destination_root , "--devcontainer" , "-- skip-action-cable", "--skip-active-job" ]
1333
1327
1334
1328
assert_compose_file do |compose_config |
1335
1329
assert_not_includes compose_config [ "services" ] [ "rails-app" ] [ "depends_on" ] , "redis"
@@ -1343,7 +1337,7 @@ def test_devcontainer_no_redis_skipping_action_cable_and_active_job
1343
1337
end
1344
1338
1345
1339
def test_devcontainer_postgresql
1346
- run_generator [ destination_root , "-d" , "postgresql" ]
1340
+ run_generator [ destination_root , "--devcontainer" , "- d", "postgresql" ]
1347
1341
1348
1342
assert_compose_file do |compose_config |
1349
1343
assert_includes compose_config [ "services" ] [ "rails-app" ] [ "depends_on" ] , "postgres"
@@ -1373,7 +1367,7 @@ def test_devcontainer_postgresql
1373
1367
end
1374
1368
1375
1369
def test_devcontainer_mysql
1376
- run_generator [ destination_root , "-d" , "mysql" ]
1370
+ run_generator [ destination_root , "--devcontainer" , "- d", "mysql" ]
1377
1371
1378
1372
assert_compose_file do |compose_config |
1379
1373
assert_includes compose_config [ "services" ] [ "rails-app" ] [ "depends_on" ] , "mysql"
@@ -1403,7 +1397,7 @@ def test_devcontainer_mysql
1403
1397
end
1404
1398
1405
1399
def test_devcontainer_mariadb
1406
- run_generator [ destination_root , "-d" , "trilogy" ]
1400
+ run_generator [ destination_root , "--devcontainer" , "- d", "trilogy" ]
1407
1401
1408
1402
assert_compose_file do |compose_config |
1409
1403
assert_includes compose_config [ "services" ] [ "rails-app" ] [ "depends_on" ] , "mariadb"
@@ -1430,7 +1424,7 @@ def test_devcontainer_mariadb
1430
1424
end
1431
1425
1432
1426
def test_devcontainer_no_selenium_when_skipping_system_test
1433
- run_generator [ destination_root , "--skip-system-test" ]
1427
+ run_generator [ destination_root , "--devcontainer" , "-- skip-system-test" ]
1434
1428
1435
1429
assert_compose_file do |compose_config |
1436
1430
assert_not_includes compose_config [ "services" ] [ "rails-app" ] [ "depends_on" ] , "selenium"
@@ -1442,39 +1436,39 @@ def test_devcontainer_no_selenium_when_skipping_system_test
1442
1436
end
1443
1437
1444
1438
def test_devcontainer_no_feature_when_skipping_active_storage
1445
- run_generator [ destination_root , "--skip-active-storage" ]
1439
+ run_generator [ destination_root , "--devcontainer" , "-- skip-active-storage" ]
1446
1440
1447
1441
assert_devcontainer_json_file do |content |
1448
1442
assert_nil content [ "features" ] [ "ghcr.io/rails/devcontainer/features/activestorage" ]
1449
1443
end
1450
1444
end
1451
1445
1452
1446
def test_devcontainer_no_depends_on_when_no_dependencies
1453
- run_generator [ destination_root , "--minimal" ]
1447
+ run_generator [ destination_root , "--devcontainer" , "-- minimal" ]
1454
1448
1455
1449
assert_compose_file do |compose_config |
1456
1450
assert_not_includes compose_config [ "services" ] [ "rails-app" ] . keys , "depends_on"
1457
1451
end
1458
1452
end
1459
1453
1460
1454
def test_devcontainer_adds_node_tooling_when_required
1461
- run_generator [ destination_root , "--javascript=esbuild" ]
1455
+ run_generator [ destination_root , "--devcontainer" , "-- javascript=esbuild"]
1462
1456
1463
1457
assert_devcontainer_json_file do |devcontainer_config |
1464
1458
assert_includes devcontainer_config [ "features" ] . keys , "ghcr.io/devcontainers/features/node:1"
1465
1459
end
1466
1460
end
1467
1461
1468
1462
def test_devcontainer_does_not_add_node_tooling_when_not_required
1469
- run_generator [ destination_root ]
1463
+ run_generator [ destination_root , "--devcontainer" ]
1470
1464
1471
1465
assert_devcontainer_json_file do |devcontainer_config |
1472
1466
assert_not_includes devcontainer_config [ "features" ] . keys , "ghcr.io/devcontainers/features/node:1"
1473
1467
end
1474
1468
end
1475
1469
1476
1470
def test_devcontainer_dev_flag_mounts_local_rails_repo
1477
- run_generator_using_prerelease [ destination_root , "--dev" ]
1471
+ run_generator_using_prerelease [ destination_root , "--devcontainer" , "-- dev" ]
1478
1472
1479
1473
assert_devcontainer_json_file do |devcontainer_config |
1480
1474
rails_mount = devcontainer_config [ "mounts" ] . sole
@@ -1485,8 +1479,8 @@ def test_devcontainer_dev_flag_mounts_local_rails_repo
1485
1479
end
1486
1480
end
1487
1481
1488
- def test_skip_devcontainer
1489
- run_generator [ destination_root , "--skip-devcontainer" ]
1482
+ def test_no_devcontainer_by_default
1483
+ run_generator [ destination_root ]
1490
1484
1491
1485
assert_no_file ( ".devcontainer/devcontainer.json" )
1492
1486
assert_no_file ( ".devcontainer/Dockerfile" )
0 commit comments