diff options
Diffstat (limited to 'spec/lib/click_house/sync_cursor_spec.rb')
-rw-r--r-- | spec/lib/click_house/sync_cursor_spec.rb | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/spec/lib/click_house/sync_cursor_spec.rb b/spec/lib/click_house/sync_cursor_spec.rb new file mode 100644 index 00000000000..43ffaa76e1d --- /dev/null +++ b/spec/lib/click_house/sync_cursor_spec.rb @@ -0,0 +1,35 @@ +# frozen_string_literal: true + +require 'spec_helper' + +RSpec.describe ClickHouse::SyncCursor, feature_category: :value_stream_management, click_house: {} do + def value + ClickHouse::SyncCursor.cursor_for(:my_table) + end + + context 'when cursor is empty' do + it 'returns the default value: 0' do + expect(value).to eq(0) + end + end + + context 'when cursor is present' do + it 'updates and returns the current cursor value' do + described_class.update_cursor_for(:my_table, 1111) + + expect(value).to eq(1111) + + described_class.update_cursor_for(:my_table, 2222) + + expect(value).to eq(2222) + end + end + + context 'when updating a different cursor' do + it 'does not affect the other cursors' do + described_class.update_cursor_for(:other_table, 1111) + + expect(value).to eq(0) + end + end +end |