diff options
author | mms <git@sapka.me> | 2024-11-14 22:34:47 +0100 |
---|---|---|
committer | mms <git@sapka.me> | 2024-11-14 22:34:57 +0100 |
commit | 8c084e0faa971e6db265ea39aefb8cf07e39de43 (patch) | |
tree | 899e4f6f8e7e33ab01d09ad917c86fd32944a4bb /spec/lib/message_spec.rb | |
parent | 4d87cb470b2c306c126d2d739d50577702374926 (diff) |
chore: add specs for all classes
Diffstat (limited to 'spec/lib/message_spec.rb')
-rw-r--r-- | spec/lib/message_spec.rb | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/spec/lib/message_spec.rb b/spec/lib/message_spec.rb new file mode 100644 index 0000000..2605117 --- /dev/null +++ b/spec/lib/message_spec.rb @@ -0,0 +1,46 @@ +# frozen_string_literal: true + +require 'rspec' +require_relative '../../lib/chotto/message' +require_relative '../../lib/chotto/helpers' + +RSpec.describe Chotto::Message do + let(:tags) { [] } + let(:msg) { double('Notmuch::Message', tags: tags) } + + let(:subject) { Chotto::Message.new(msg: msg) } + + it 'reads headers' do + expect(msg).to receive(:header).with('A-Header') + + subject.a_header + end + + describe 'tags' do + it 'keeps tags state in memory' do + subject.tags << 'tag' + expect(subject.tags).to match ['tag'] + + subject.tags << 'tag2' + expect(subject.tags).to match %w[tag tag2] + end + + it 'allows to overwritte entire tags array' do + subject.tags = [1, 2, 3, 4] + expect(subject.tags).to match [1, 2, 3, 4] + end + end + + describe 'save!' do + let(:tags) { [1, 2, 3] } + it 'saves current tag array to db' do + expect(msg).to receive(:remove_all_tags) + tags.each do |tag| + expect(msg).to receive(:add_tag).with(tag.to_s) + end + + subject.tags = tags + subject.save! + end + end +end |