|
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 "Missing Variable" |
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", "false") |
| 98 | + expect(result.isDefaulted).to eq true |
| 99 | + expect(result.eval[:reason]).to eq "DEFAULT" |
| 100 | + expect(result.eval[:details]).to eq "Variable Type Mismatch" |
91 | 101 | end |
92 | 102 | end |
93 | 103 |
|
|
104 | 114 | end |
105 | 115 | end |
106 | 116 |
|
| 117 | + describe 'get_variable_by_key test' do |
| 118 | + before do |
| 119 | + WebMock.disable_net_connect!(allow_localhost: true) |
| 120 | + end |
| 121 | + |
| 122 | + after do |
| 123 | + WebMock.allow_net_connect! |
| 124 | + end |
| 125 | + |
| 126 | + it 'should work with mocked response' do |
| 127 | + stub_request(:post, "https://bucketing-api.devcycle.com/v1/variables/mocked_variable"). |
| 128 | + to_return(status: 200, body: "{\"isDefaulted\": false, \"value\": true, \"eval\": {\"reason\": \"SPLIT\", \"details\": \"Random Distribution | All Users\", \"target_id\": \"621642332ea68943c8833c4d\"}}", headers: {}) |
| 129 | + |
| 130 | + result = @api_instance.variable(@user, "mocked_variable", false) |
| 131 | + expect(result.isDefaulted).to eq false |
| 132 | + expect(result.value).to eq true |
| 133 | + # Use Hash syntax since eval is deserialized as a Hash |
| 134 | + expect(result.eval[:reason]).to eq "SPLIT" |
| 135 | + expect(result.eval[:details]).to eq "Random Distribution | All Users" |
| 136 | + expect(result.eval[:target_id]).to eq "621642332ea68943c8833c4d" |
| 137 | + end |
| 138 | + |
| 139 | + it 'should return error details' do |
| 140 | + stub_request(:post, "https://bucketing-api.devcycle.com/v1/variables/test"). |
| 141 | + to_return(status: 500, body: "{\"isDefaulted\": true, \"value\": false, \"eval\": {\"reason\": \"DEFAULT\", \"details\": \"Error\"}}", headers: {}) |
| 142 | + |
| 143 | + result = @api_instance.variable(@user, "test", false) |
| 144 | + expect(result.isDefaulted).to eq true |
| 145 | + expect(result.eval[:reason]).to eq "DEFAULT" |
| 146 | + expect(result.eval[:details]).to eq "Error" |
| 147 | + end |
| 148 | + end |
| 149 | + |
107 | 150 | end |
0 commit comments