Commit 1badbdc
committed
Skip Salesforce integration specs when Heroku Connect DB is unavailable
Step 1:
Tag all three Salesforce job specs with requires_salesforce_db: true.
Add a filter_run_excluding rule in rails_helper so these specs are
automatically skipped when SALESFORCE_CONNECT_DB is not set (i.e. the
developer is running tests locally without the heroku-connect Docker
service).
CI and Docker environments, which set SALESFORCE_CONNECT_DB, continue
to run the full Salesforce spec suite unchanged.
Step 2:
Make SALESFORCE_ENABLED opt-in (default false)
Previously salesforce_sync? returned true unless SALESFORCE_ENABLED was
explicitly set to 'false'. This caused GoodJob (which runs inline in
test mode) to execute SchoolSyncJob and RoleSyncJob immediately whenever
a school or role was created in any test — hitting Salesforce tables that
don't exist in the test database.
Change the check to opt-in: salesforce_sync? now returns true only when
SALESFORCE_ENABLED == 'true'. Production and Docker setups already set
this explicitly, so behaviour there is unchanged.
Update the model specs to set SALESFORCE_ENABLED=true for the describe
block that asserts jobs are enqueued, and update the feature flags spec
to reflect the new default-false behaviour.
Step 3:
Guard after_commit callbacks with feature flag condition
Move the FeatureFlags.salesforce_sync? check (and the student? check
for Role) from inside do_salesforce_sync into the after_commit :if
condition. This prevents the callback from firing at all when Salesforce
sync is disabled, avoiding any interaction with the queue adapter or
Salesforce models in tests that don't enable the feature.1 parent 1ecfb53 commit 1badbdc
10 files changed
Lines changed: 20 additions & 13 deletions
File tree
- app/models
- lib
- spec
- jobs/salesforce
- lib
- models
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
19 | | - | |
| 19 | + | |
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
| |||
42 | 42 | | |
43 | 43 | | |
44 | 44 | | |
45 | | - | |
46 | | - | |
47 | | - | |
48 | 45 | | |
49 | 46 | | |
50 | 47 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
55 | 55 | | |
56 | 56 | | |
57 | 57 | | |
58 | | - | |
| 58 | + | |
59 | 59 | | |
60 | 60 | | |
61 | 61 | | |
| |||
174 | 174 | | |
175 | 175 | | |
176 | 176 | | |
177 | | - | |
178 | | - | |
179 | 177 | | |
180 | 178 | | |
181 | 179 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
9 | | - | |
| 9 | + | |
10 | 10 | | |
11 | 11 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
5 | | - | |
| 5 | + | |
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
5 | | - | |
| 5 | + | |
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
5 | | - | |
| 5 | + | |
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
36 | 36 | | |
37 | 37 | | |
38 | 38 | | |
39 | | - | |
| 39 | + | |
40 | 40 | | |
41 | | - | |
| 41 | + | |
42 | 42 | | |
43 | 43 | | |
44 | 44 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
167 | 167 | | |
168 | 168 | | |
169 | 169 | | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
170 | 174 | | |
171 | 175 | | |
172 | 176 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
629 | 629 | | |
630 | 630 | | |
631 | 631 | | |
| 632 | + | |
| 633 | + | |
| 634 | + | |
| 635 | + | |
632 | 636 | | |
633 | 637 | | |
634 | 638 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
72 | 72 | | |
73 | 73 | | |
74 | 74 | | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
75 | 79 | | |
76 | 80 | | |
77 | 81 | | |
| |||
0 commit comments