Merge pull request #905 from Ana06/languages

Languages
This commit is contained in:
Henne Vogelsang 2016-06-15 16:55:12 +02:00 committed by GitHub
commit dcae196d2b
16 changed files with 115 additions and 13 deletions

View file

@ -58,4 +58,37 @@ describe Program do
expect(conference.program.difficulty_levels.count).to eq 3
end
end
describe 'languages' do
it "is not valid if languages aren't two letters separated by commas" do
program.languages = 'eng, De es'
expect(program.valid?).to eq false
expect(program.errors[:languages]).to eq ['must be two letters separated by commas']
end
it 'is not valid if languages are repeated' do
program.languages = 'en,de,es,en'
expect(program.valid?).to eq false
expect(program.errors[:languages]).to eq ["can't be repeated"]
end
it "is not valid if languages aren't ISO 639-1 valid codes" do
program.languages = 'en,hh,yu,zi,oo'
expect(program.valid?).to eq false
expect(program.errors[:languages]).to eq ['must be ISO 639-1 valid codes']
end
it 'is valid otherwise' do
program.languages = 'en,De, ES, ru,el'
expect(program.valid?).to eq true
end
end
describe '#languages_list' do
it 'returns the list of readable languages' do
program.languages = 'en,de,fr,ru,zh'
expect(program.languages_list).to eq %w(English German French Russian Chinese)
end
end
end

View file

@ -3,12 +3,13 @@ require 'spec_helper'
describe 'admin/events/index' do
let!(:conference) { create(:conference) }
let!(:program) { conference.program }
let!(:event1) { create(:event, program: conference.program, title: 'event1') }
let!(:event2) { create(:event, program: conference.program, title: 'event2') }
let!(:event1) { create(:event, program: conference.program, title: 'event1', language: 'English') }
let!(:event2) { create(:event, program: conference.program, title: 'event2', language: 'German') }
it 'renders all conference events' do
assign(:conference, conference)
assign(:program, conference.program)
program.languages = 'en,de'
assign(:events, [ event1, event2 ])
assign(:event_types, [ create(:event_type, program: conference.program), create(:event_type, program: conference.program) ])
assign(:tracks, [ create(:track, program: conference.program), create(:track, program: conference.program) ])
@ -20,18 +21,21 @@ describe 'admin/events/index' do
expect(rendered).to have_selector('table thead th:nth-of-type(2)', text: 'Title')
expect(rendered).to have_selector('table thead th:nth-of-type(3)', text: 'Submitter')
expect(rendered).to have_selector('table thead th:nth-of-type(4)', text: 'Speaker')
expect(rendered).to have_selector('table thead th:nth-of-type(5)', text: 'Requires Registration')
expect(rendered).to have_selector('table thead th:nth-of-type(6)', text: 'Highlight')
expect(rendered).to have_selector('table thead th:nth-of-type(7)', text: 'Type')
expect(rendered).to have_selector('table thead th:nth-of-type(8)', text: 'Track')
expect(rendered).to have_selector('table thead th:nth-of-type(9)', text: 'Difficulty')
expect(rendered).to have_selector('table thead th:nth-of-type(10)', text: 'State')
expect(rendered).to have_selector('table thead th:nth-of-type(5)', text: 'Language')
expect(rendered).to have_selector('table thead th:nth-of-type(6)', text: 'Requires Registration')
expect(rendered).to have_selector('table thead th:nth-of-type(7)', text: 'Highlight')
expect(rendered).to have_selector('table thead th:nth-of-type(8)', text: 'Type')
expect(rendered).to have_selector('table thead th:nth-of-type(9)', text: 'Track')
expect(rendered).to have_selector('table thead th:nth-of-type(10)', text: 'Difficulty')
expect(rendered).to have_selector('table thead th:nth-of-type(11)', text: 'State')
expect(conference.program.events.count).to eq 2
expect(rendered).to have_selector('table tr:nth-of-type(1) td:nth-of-type(1)', text: event1.id)
expect(rendered).to have_selector('table tr:nth-of-type(1) td:nth-of-type(2)', text: 'event1')
expect(rendered).to have_selector('table tr:nth-of-type(1) td:nth-of-type(5)', text: 'English')
expect(rendered).to have_selector('table tr:nth-of-type(2) td:nth-of-type(1)', text: event2.id)
expect(rendered).to have_selector('table tr:nth-of-type(2) td:nth-of-type(2)', text: 'event2')
expect(rendered).to have_selector('table tr:nth-of-type(2) td:nth-of-type(5)', text: 'German')
end
end

View file

@ -12,5 +12,6 @@ describe 'admin/programs/show' do
expect(rendered).to have_css('dt', text: 'Tracks:')
expect(rendered).to have_css('dt', text: 'Difficulty Levels:')
expect(rendered).to have_css('dd', text: 'Easy, Medium and Hard')
expect(rendered).to have_css('dt', text: 'Languages:')
end
end