|
12 | 12 |
|
13 | 13 | require 'spec_helper' |
14 | 14 | require 'json' |
| 15 | +require 'webmock' |
| 16 | + |
| 17 | +include WebMock::API |
15 | 18 |
|
16 | 19 | # Unit tests for DevCycle::Client |
17 | 20 | # Automatically generated by openapi-generator (https://openapi-generator.tech) |
|
68 | 71 | it 'should work' do |
69 | 72 | result = @api_instance.variable(@user, "ruby-example-tests-default", false) |
70 | 73 | expect(result.isDefaulted).to eq true |
| 74 | + expect(result.eval[:reason]).to eq "DEFAULT" |
| 75 | + expect(result.eval[:details]).to eq "Error" |
71 | 76 |
|
72 | 77 | result = @api_instance.variable_value(@user, "ruby-example-tests-default", true) |
73 | 78 | expect(result).to eq true |
|
88 | 93 |
|
89 | 94 | result = @api_instance.variable_value(@user, "test", true) |
90 | 95 | expect(result).to eq true |
| 96 | + |
| 97 | + result = @api_instance.variable(@user, "test-number-variable", 0) |
| 98 | + expect(result.isDefaulted).to eq false |
| 99 | + expect(result.value).to eq 123 |
| 100 | + |
| 101 | + result = @api_instance.variable(@user, "test-number-variable", 0) |
| 102 | + expect(result.isDefaulted).to eq false |
| 103 | + expect(result.value).to eq 123 |
| 104 | + |
| 105 | + result = @api_instance.variable(@user, "test-float-variable", 0.0) |
| 106 | + expect(result.isDefaulted).to eq false |
| 107 | + expect(result.value).to eq 4.56 |
| 108 | + |
| 109 | + result = @api_instance.variable(@user, "test-string-variable", "") |
| 110 | + expect(result.isDefaulted).to eq false |
| 111 | + expect(result.value).to eq "on" |
| 112 | + |
| 113 | + result = @api_instance.variable(@user, "test-json-variable", {}) |
| 114 | + expect(result.isDefaulted).to eq false |
| 115 | + expect(result.value).to eq({:message => "a"}) |
| 116 | + |
| 117 | + result = @api_instance.variable(@user, "test", "false") |
| 118 | + expect(result.isDefaulted).to eq true |
| 119 | + expect(result.eval[:reason]).to eq "DEFAULT" |
| 120 | + expect(result.eval[:details]).to eq "Variable Type Mismatch" |
| 121 | + |
| 122 | + result = @api_instance.variable(@user, "test-number-variable", "123") |
| 123 | + expect(result.isDefaulted).to eq true |
| 124 | + expect(result.eval[:reason]).to eq "DEFAULT" |
| 125 | + expect(result.eval[:details]).to eq "Variable Type Mismatch" |
| 126 | + |
| 127 | + result = @api_instance.variable(@user, "test-number-variable", true) |
| 128 | + expect(result.isDefaulted).to eq true |
| 129 | + expect(result.eval[:reason]).to eq "DEFAULT" |
| 130 | + expect(result.eval[:details]).to eq "Variable Type Mismatch" |
| 131 | + |
| 132 | + result = @api_instance.variable(@user, "test-string-variable", true) |
| 133 | + expect(result.isDefaulted).to eq true |
| 134 | + expect(result.eval[:reason]).to eq "DEFAULT" |
| 135 | + expect(result.eval[:details]).to eq "Variable Type Mismatch" |
| 136 | + |
| 137 | + result = @api_instance.variable(@user, "test-json-variable", "on") |
| 138 | + expect(result.isDefaulted).to eq true |
| 139 | + expect(result.eval[:reason]).to eq "DEFAULT" |
| 140 | + expect(result.eval[:details]).to eq "Variable Type Mismatch" |
91 | 141 | end |
92 | 142 | end |
93 | 143 |
|
|
104 | 154 | end |
105 | 155 | end |
106 | 156 |
|
| 157 | + describe 'get_variable_by_key test' do |
| 158 | + before do |
| 159 | + WebMock.disable_net_connect!(allow_localhost: true) |
| 160 | + end |
| 161 | + |
| 162 | + after do |
| 163 | + WebMock.allow_net_connect! |
| 164 | + end |
| 165 | + |
| 166 | + it 'should work with mocked response' do |
| 167 | + stub_request(:post, "https://bucketing-api.devcycle.com/v1/variables/mocked_variable"). |
| 168 | + to_return(status: 200, body: "{\"isDefaulted\": false, \"value\": true, \"eval\": {\"reason\": \"SPLIT\", \"details\": \"Random Distribution | All Users\", \"target_id\": \"621642332ea68943c8833c4d\"}}", headers: {}) |
| 169 | + |
| 170 | + result = @api_instance.variable(@user, "mocked_variable", false) |
| 171 | + expect(result.isDefaulted).to eq false |
| 172 | + expect(result.value).to eq true |
| 173 | + # Use Hash syntax since eval is deserialized as a Hash |
| 174 | + expect(result.eval[:reason]).to eq "SPLIT" |
| 175 | + expect(result.eval[:details]).to eq "Random Distribution | All Users" |
| 176 | + expect(result.eval[:target_id]).to eq "621642332ea68943c8833c4d" |
| 177 | + end |
| 178 | + |
| 179 | + it 'should return error details' do |
| 180 | + stub_request(:post, "https://bucketing-api.devcycle.com/v1/variables/test"). |
| 181 | + to_return(status: 500, body: "{\"isDefaulted\": true, \"value\": false, \"eval\": {\"reason\": \"DEFAULT\", \"details\": \"Error\"}}", headers: {}) |
| 182 | + |
| 183 | + result = @api_instance.variable(@user, "test", false) |
| 184 | + expect(result.isDefaulted).to eq true |
| 185 | + expect(result.eval[:reason]).to eq "DEFAULT" |
| 186 | + expect(result.eval[:details]).to eq "Error" |
| 187 | + end |
| 188 | + end |
| 189 | + |
107 | 190 | end |
0 commit comments