Files
codeocean/spec/views/exercises/implement.html.slim_spec.rb
Sebastian Serth a0d8b30ef2 Implement support for some basic embed options for work sheets via LTI
This commit also fixes an issue with the flash messages being positioned too high and displayed for too long
2018-12-11 14:29:36 +01:00

44 lines
1.5 KiB
Ruby

require 'rails_helper'
describe 'exercises/implement.html.slim' do
let(:exercise) { FactoryBot.create(:fibonacci) }
let(:files) { exercise.files.visible }
let(:non_binary_files) { files.reject { |file| file.file_type.binary? } }
before(:each) do
assign(:current_user, FactoryBot.create(:admin))
assign(:exercise, exercise)
assign(:files, files)
assign(:paths, [])
assign(:embed_options, {})
render
end
it 'contains the required editor data attributes' do
expect(rendered).to have_css("#editor[data-exercise-id='#{exercise.id}']")
expect(rendered).to have_css('#editor[data-message-timeout]')
expect(rendered).to have_css("#editor[data-submissions-url='#{submissions_path}']")
end
it 'contains the required file tree data attributes' do
expect(rendered).to have_css('#files[data-entries]')
end
it 'contains a frame for every file' do
expect(rendered).to have_css('.frame', count: files.length)
end
it 'assigns the correct code to every editor' do
non_binary_files.each do |file|
expect(rendered).to include(file.content)
end
end
it 'assigns the correct data attributes to every frame' do
non_binary_files.each do |file|
expect(rendered).to have_css(".editor[data-file-id='#{file.id}'][data-indent-size='#{file.file_type.indent_size}'][data-mode='#{file.file_type.editor_mode}']")
expect(rendered).to have_css(".frame[data-filename='#{file.name_with_extension}']")
end
end
end