|
27 | 27 | let(:params) { { split_fetcher: split_fetcher, segment_fetcher: segment_fetcher, imp_counter: impression_counter } } |
28 | 28 | let(:synchronizer) { SplitIoClient::Engine::Synchronizer.new(repositories, api_key, config, sdk_blocker, params) } |
29 | 29 |
|
30 | | - before do |
31 | | - mock_split_changes(splits) |
32 | | - mock_segment_changes('segment1', segment1, '-1') |
33 | | - mock_segment_changes('segment1', segment1, '1470947453877') |
34 | | - mock_segment_changes('segment2', segment2, '-1') |
35 | | - mock_segment_changes('segment2', segment2, '1470947453878') |
36 | | - mock_segment_changes('segment3', segment3, '-1') |
37 | | - |
38 | | - split_fetcher.fetch_splits |
| 30 | + it 'add change number - must tigger fetcch - with retries' do |
| 31 | + stub_request(:get, 'https://sdk.split.io/api/splitChanges?since=-1') |
| 32 | + .to_return(status: 200, body: |
| 33 | + '{ |
| 34 | + "splits": [], |
| 35 | + "since": -1, |
| 36 | + "till": 1506703262918 |
| 37 | + }') |
| 38 | + |
| 39 | + stub_request(:get, 'https://sdk.split.io/api/splitChanges?since=1506703262918') |
| 40 | + .to_return(status: 200, body: |
| 41 | + '{ |
| 42 | + "splits": [], |
| 43 | + "since": 1506703262918, |
| 44 | + "till": 1506703262918 |
| 45 | + }') |
| 46 | + |
| 47 | + worker = subject.new(synchronizer, config, splits_repository) |
| 48 | + worker.start |
| 49 | + worker.add_to_queue(1_506_703_262_919) |
| 50 | + |
| 51 | + sleep(1) |
| 52 | + |
| 53 | + expect(a_request(:get, 'https://sdk.split.io/api/splitChanges?since=1506703262918')).to have_been_made.times(10) |
39 | 54 | end |
40 | 55 |
|
41 | 56 | context 'add change number to queue' do |
| 57 | + before do |
| 58 | + mock_split_changes(splits) |
| 59 | + mock_segment_changes('segment1', segment1, '-1') |
| 60 | + mock_segment_changes('segment1', segment1, '1470947453877') |
| 61 | + mock_segment_changes('segment2', segment2, '-1') |
| 62 | + mock_segment_changes('segment2', segment2, '1470947453878') |
| 63 | + mock_segment_changes('segment3', segment3, '-1') |
| 64 | + |
| 65 | + split_fetcher.fetch_splits |
| 66 | + end |
| 67 | + |
42 | 68 | it 'must trigger fetch' do |
43 | 69 | worker = subject.new(synchronizer, config, splits_repository) |
44 | 70 | worker.start |
|
71 | 97 | end |
72 | 98 |
|
73 | 99 | context 'kill split notification' do |
| 100 | + before do |
| 101 | + mock_split_changes(splits) |
| 102 | + mock_segment_changes('segment1', segment1, '-1') |
| 103 | + mock_segment_changes('segment1', segment1, '1470947453877') |
| 104 | + mock_segment_changes('segment2', segment2, '-1') |
| 105 | + mock_segment_changes('segment2', segment2, '1470947453878') |
| 106 | + mock_segment_changes('segment3', segment3, '-1') |
| 107 | + |
| 108 | + split_fetcher.fetch_splits |
| 109 | + end |
| 110 | + |
74 | 111 | it 'must kill split and trigger fetch' do |
75 | 112 | worker = subject.new(synchronizer, config, splits_repository) |
76 | 113 |
|
|
0 commit comments