f2dee8e855
Instead of an integration test that creates 101 Todo records to test a simple view helper, just unit test the helper.
36 lines
1.2 KiB
Ruby
36 lines
1.2 KiB
Ruby
require "spec_helper"
|
|
|
|
describe TodosHelper do
|
|
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
|
|
|
|
describe '#todo_projects_options' do
|
|
let(:projects) { create_list(:empty_project, 3) }
|
|
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' },
|
|
{ 'id' => projects.second.id, 'text' => projects.second.name_with_namespace },
|
|
{ 'id' => projects.first.id, 'text' => projects.first.name_with_namespace }
|
|
]
|
|
|
|
expect(JSON.parse(helper.todo_projects_options)).to match_array(expected_results)
|
|
end
|
|
end
|
|
end
|