todos_helper_spec.rb 1.14 KB
Newer Older
1 2 3
require "spec_helper"

describe TodosHelper do
4 5 6 7 8 9 10 11 12 13 14 15 16
  describe '#todos_count_format' do
    it 'shows fuzzy count for 100 or more items' do
      expect(helper.todos_count_format(100)).to eq '99+'
      expect(helper.todos_count_format(1000)).to eq '99+'
    end

    it 'shows exact count for 99 or fewer items' do
      expect(helper.todos_count_format(99)).to eq '99'
      expect(helper.todos_count_format(50)).to eq '50'
      expect(helper.todos_count_format(1)).to eq '1'
    end
  end

17
  describe '#todo_projects_options' do
18
    let(:projects) { create_list(:project, 3) }
19 20 21 22 23 24 25 26 27 28
    let(:user)     { create(:user) }

    it 'returns users authorised projects in json format' do
      projects.first.add_developer(user)
      projects.second.add_developer(user)

      allow(helper).to receive(:current_user).and_return(user)

      expected_results = [
        { 'id' => '', 'text' => 'Any Project' },
29 30
        { 'id' => projects.second.id, 'text' => projects.second.full_name },
        { 'id' => projects.first.id, 'text' => projects.first.full_name }
31 32 33 34 35 36
      ]

      expect(JSON.parse(helper.todo_projects_options)).to match_array(expected_results)
    end
  end
end