From 51cbd045dab531725b448311ea52d0aec215a8f8 Mon Sep 17 00:00:00 2001 From: ysksn Date: Sat, 8 Dec 2018 00:37:56 +0900 Subject: [PATCH] Add specs for AccountTagStat model (#9452) --- spec/models/account_tag_stat_spec.rb | 35 +++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/spec/models/account_tag_stat_spec.rb b/spec/models/account_tag_stat_spec.rb index f1ebc5578..6d3057f35 100644 --- a/spec/models/account_tag_stat_spec.rb +++ b/spec/models/account_tag_stat_spec.rb @@ -1,5 +1,38 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe AccountTagStat, type: :model do - pending "add some examples to (or delete) #{__FILE__}" + key = 'accounts_count' + let(:account_tag_stat) { Fabricate(:tag).account_tag_stat } + + describe '#increment_count!' do + it 'calls #update' do + args = { key => account_tag_stat.public_send(key) + 1 } + expect(account_tag_stat).to receive(:update).with(args) + account_tag_stat.increment_count!(key) + end + + it 'increments value by 1' do + expect do + account_tag_stat.increment_count!(key) + end.to change { account_tag_stat.accounts_count }.by(1) + end + end + + describe '#decrement_count!' do + it 'calls #update' do + args = { key => [account_tag_stat.public_send(key) - 1, 0].max } + expect(account_tag_stat).to receive(:update).with(args) + account_tag_stat.decrement_count!(key) + end + + it 'decrements value by 1' do + account_tag_stat.update(key => 1) + + expect do + account_tag_stat.decrement_count!(key) + end.to change { account_tag_stat.accounts_count }.by(-1) + end + end end