|
12 | 12 | #
|
13 | 13 | # The tests verify that reads going to the replica database do not find data written to the primary.
|
14 | 14 | class ActiveRecordReplicaTest < Minitest::Test
|
15 |
| - describe "the active_record_replica gem" do |
| 15 | + describe ActiveRecordReplica do |
16 | 16 | let(:user_name) { "Joe Bloggs" }
|
17 | 17 | let(:address) { "Somewhere" }
|
18 | 18 | let(:user) { User.new(name: user_name, address: address) }
|
19 | 19 |
|
20 | 20 | before do
|
21 | 21 | ActiveRecordReplica.ignore_transactions = false
|
| 22 | + ActiveRecordReplica.read_from_replica! |
22 | 23 | User.delete_all
|
23 | 24 | end
|
24 | 25 |
|
@@ -95,5 +96,65 @@ class ActiveRecordReplicaTest < Minitest::Test
|
95 | 96 | assert_equal 1, User.where(name: user_name, address: address).count
|
96 | 97 | end
|
97 | 98 | end
|
| 99 | + |
| 100 | + describe ".read_from_replica?" do |
| 101 | + it "is true when global replica flag is set" do |
| 102 | + ActiveRecordReplica.read_from_replica! |
| 103 | + assert ActiveRecordReplica.read_from_replica? |
| 104 | + end |
| 105 | + |
| 106 | + it "is false when reading from replica" do |
| 107 | + ActiveRecordReplica.read_from_primary! |
| 108 | + refute ActiveRecordReplica.read_from_replica? |
| 109 | + end |
| 110 | + end |
| 111 | + |
| 112 | + describe ".read_from_primary?" do |
| 113 | + it "is true when global primary flag is set" do |
| 114 | + ActiveRecordReplica.read_from_primary! |
| 115 | + assert ActiveRecordReplica.read_from_primary? |
| 116 | + end |
| 117 | + |
| 118 | + it "is false when reading from replica" do |
| 119 | + ActiveRecordReplica.read_from_replica! |
| 120 | + refute ActiveRecordReplica.read_from_primary? |
| 121 | + end |
| 122 | + end |
| 123 | + |
| 124 | + describe ".read_from_replica" do |
| 125 | + it "works with global replica flag" do |
| 126 | + ActiveRecordReplica.read_from_replica! |
| 127 | + ActiveRecordReplica.read_from_replica do |
| 128 | + assert ActiveRecordReplica.read_from_replica? |
| 129 | + refute ActiveRecordReplica.read_from_primary? |
| 130 | + end |
| 131 | + end |
| 132 | + |
| 133 | + it "overwrites global replica flag" do |
| 134 | + ActiveRecordReplica.read_from_primary! |
| 135 | + ActiveRecordReplica.read_from_replica do |
| 136 | + assert ActiveRecordReplica.read_from_replica? |
| 137 | + refute ActiveRecordReplica.read_from_primary? |
| 138 | + end |
| 139 | + end |
| 140 | + end |
| 141 | + |
| 142 | + describe ".read_from_primary" do |
| 143 | + it "works with global replica flag" do |
| 144 | + ActiveRecordReplica.read_from_primary! |
| 145 | + ActiveRecordReplica.read_from_primary do |
| 146 | + assert ActiveRecordReplica.read_from_primary? |
| 147 | + refute ActiveRecordReplica.read_from_replica? |
| 148 | + end |
| 149 | + end |
| 150 | + |
| 151 | + it "overwrites global replica flag" do |
| 152 | + ActiveRecordReplica.read_from_replica! |
| 153 | + ActiveRecordReplica.read_from_primary do |
| 154 | + assert ActiveRecordReplica.read_from_primary? |
| 155 | + refute ActiveRecordReplica.read_from_replica? |
| 156 | + end |
| 157 | + end |
| 158 | + end |
98 | 159 | end
|
99 | 160 | end
|
0 commit comments