From d47d1ba416d8487e5c213f2674b036bd35538655 Mon Sep 17 00:00:00 2001 From: Hauke Klement Date: Tue, 3 Mar 2015 17:55:56 +0100 Subject: [PATCH] added feature specs --- spec/features/editor_spec.rb | 91 ++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 spec/features/editor_spec.rb diff --git a/spec/features/editor_spec.rb b/spec/features/editor_spec.rb new file mode 100644 index 00000000..5695de72 --- /dev/null +++ b/spec/features/editor_spec.rb @@ -0,0 +1,91 @@ +require 'rails_helper' + +describe 'Editor', js: true do + let(:exercise) { FactoryGirl.create(:audio_video, instructions: Forgery(:lorem_ipsum).sentence) } + let(:user) { FactoryGirl.create(:teacher) } + + before(:each) do + visit(sign_in_path) + fill_in('Email', with: user.email) + fill_in('Password', with: FactoryGirl.attributes_for(:teacher)[:password]) + click_button(I18n.t('sessions.new.link')) + visit(implement_exercise_path(exercise)) + end + + it 'displays the exercise title' do + expect(page).to have_content(exercise.title) + end + + describe 'Instructions Tab' do + before(:each) { click_link(I18n.t('activerecord.attributes.exercise.instructions')) } + + it 'displays the exercise instructions' do + expect(page).to have_content(exercise.instructions) + end + end + + describe 'Workspace Tab' do + before(:each) { click_link(I18n.t('exercises.implement.workspace')) } + + it 'displays all visible files in a file tree' do + within('#files') do + exercise.files.select(&:visible).each do |file| + expect(page).to have_content(file.name_with_extension) + end + end + end + + it "displays the main file's code" do + expect(page).to have_content(exercise.files.detect(&:main_file?).content) + end + + context 'when selecting a file' do + before(:each) do + within('#files') { click_link(file.name_with_extension) } + end + + context 'when selecting a binary file' do + context 'when selecting an audio file' do + let(:file) { exercise.files.detect { |file| file.file_type.audio? } } + + it 'contains an