|
21 | 21 | utils.reset_database_yml(db_config) |
22 | 22 | ActiveRecord::Base.configurations = { "test" => db_config } |
23 | 23 | ActiveRecord::Tasks::DatabaseTasks.database_configuration = { "test" => db_config } |
24 | | - |
| 24 | + |
25 | 25 | # Configure to exclude secondary database |
26 | 26 | ActualDbSchema.config.excluded_databases = [:secondary] |
27 | | - |
| 27 | + |
28 | 28 | # Get the migration context instance |
29 | 29 | context = ActualDbSchema::MigrationContext.instance |
30 | | - |
| 30 | + |
31 | 31 | # Verify only primary database is included |
32 | 32 | configs = context.send(:configs) |
33 | 33 | config_names = configs.map { |c| c.respond_to?(:name) ? c.name.to_sym : :primary } |
34 | | - |
| 34 | + |
35 | 35 | assert_includes config_names, :primary |
36 | 36 | refute_includes config_names, :secondary |
37 | 37 | end |
|
46 | 46 | "migrations_paths" => Rails.root.join("db", "migrate_queue").to_s |
47 | 47 | } |
48 | 48 | } |
49 | | - |
| 49 | + |
50 | 50 | utils.reset_database_yml(db_config) |
51 | 51 | ActiveRecord::Base.configurations = { "test" => db_config } |
52 | 52 | ActiveRecord::Tasks::DatabaseTasks.database_configuration = { "test" => db_config } |
53 | | - |
| 53 | + |
54 | 54 | # Configure to exclude secondary and queue databases |
55 | | - ActualDbSchema.config.excluded_databases = [:secondary, :queue] |
56 | | - |
| 55 | + ActualDbSchema.config.excluded_databases = %i[secondary queue] |
| 56 | + |
57 | 57 | # Get the migration context instance |
58 | 58 | context = ActualDbSchema::MigrationContext.instance |
59 | | - |
| 59 | + |
60 | 60 | # Verify only primary database is included |
61 | 61 | configs = context.send(:configs) |
62 | 62 | config_names = configs.map { |c| c.respond_to?(:name) ? c.name.to_sym : :primary } |
63 | | - |
| 63 | + |
64 | 64 | assert_includes config_names, :primary |
65 | 65 | refute_includes config_names, :secondary |
66 | 66 | refute_includes config_names, :queue |
|
71 | 71 | utils.reset_database_yml(db_config) |
72 | 72 | ActiveRecord::Base.configurations = { "test" => db_config } |
73 | 73 | ActiveRecord::Tasks::DatabaseTasks.database_configuration = { "test" => db_config } |
74 | | - |
| 74 | + |
75 | 75 | ActualDbSchema.config.excluded_databases = [] |
76 | | - |
| 76 | + |
77 | 77 | context = ActualDbSchema::MigrationContext.instance |
78 | 78 | configs = context.send(:configs) |
79 | 79 | config_names = configs.map { |c| c.respond_to?(:name) ? c.name.to_sym : :primary } |
80 | | - |
| 80 | + |
81 | 81 | assert_includes config_names, :primary |
82 | 82 | assert_includes config_names, :secondary |
83 | 83 | end |
|
86 | 86 | describe "environment variable ACTUAL_DB_SCHEMA_EXCLUDED_DATABASES" do |
87 | 87 | it "parses comma-separated database names from environment variable" do |
88 | 88 | ENV["ACTUAL_DB_SCHEMA_EXCLUDED_DATABASES"] = "queue,cable" |
89 | | - |
| 89 | + |
90 | 90 | # Create a new configuration to pick up the env var |
91 | 91 | config = ActualDbSchema::Configuration.new |
92 | | - |
93 | | - assert_equal [:queue, :cable], config.excluded_databases |
| 92 | + |
| 93 | + assert_equal %i[queue cable], config.excluded_databases |
94 | 94 | ensure |
95 | 95 | ENV.delete("ACTUAL_DB_SCHEMA_EXCLUDED_DATABASES") |
96 | 96 | end |
97 | 97 |
|
98 | 98 | it "handles whitespace in environment variable" do |
99 | 99 | ENV["ACTUAL_DB_SCHEMA_EXCLUDED_DATABASES"] = "queue, cable, cache" |
100 | | - |
| 100 | + |
101 | 101 | config = ActualDbSchema::Configuration.new |
102 | | - |
103 | | - assert_equal [:queue, :cable, :cache], config.excluded_databases |
| 102 | + |
| 103 | + assert_equal %i[queue cable cache], config.excluded_databases |
104 | 104 | ensure |
105 | 105 | ENV.delete("ACTUAL_DB_SCHEMA_EXCLUDED_DATABASES") |
106 | 106 | end |
107 | 107 |
|
108 | 108 | it "returns empty array when environment variable is not set" do |
109 | 109 | ENV.delete("ACTUAL_DB_SCHEMA_EXCLUDED_DATABASES") |
110 | | - |
| 110 | + |
111 | 111 | config = ActualDbSchema::Configuration.new |
112 | | - |
| 112 | + |
113 | 113 | assert_equal [], config.excluded_databases |
114 | 114 | end |
115 | 115 |
|
116 | 116 | it "handles empty string in environment variable" do |
117 | 117 | ENV["ACTUAL_DB_SCHEMA_EXCLUDED_DATABASES"] = "" |
118 | | - |
| 118 | + |
119 | 119 | config = ActualDbSchema::Configuration.new |
120 | | - |
| 120 | + |
121 | 121 | assert_equal [], config.excluded_databases |
122 | 122 | ensure |
123 | 123 | ENV.delete("ACTUAL_DB_SCHEMA_EXCLUDED_DATABASES") |
124 | 124 | end |
125 | 125 |
|
126 | 126 | it "filters out empty values from comma-separated list" do |
127 | 127 | ENV["ACTUAL_DB_SCHEMA_EXCLUDED_DATABASES"] = "queue,,cable, ,cache" |
128 | | - |
| 128 | + |
129 | 129 | config = ActualDbSchema::Configuration.new |
130 | | - |
131 | | - assert_equal [:queue, :cable, :cache], config.excluded_databases |
| 130 | + |
| 131 | + assert_equal %i[queue cable cache], config.excluded_databases |
132 | 132 | ensure |
133 | 133 | ENV.delete("ACTUAL_DB_SCHEMA_EXCLUDED_DATABASES") |
134 | 134 | end |
|
0 commit comments