-
Notifications
You must be signed in to change notification settings - Fork 2.1k
/
Copy pathlesson_completion_spec.rb
44 lines (34 loc) · 1.31 KB
/
lesson_completion_spec.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
require 'rails_helper'
RSpec.describe 'Lesson Completions' do
let!(:user) { create(:user) }
let!(:lesson) { create(:lesson) }
context 'when user is signed in' do
before do
sign_in(user)
visit lesson_path(lesson)
end
it 'can complete a lesson' do
find(:test_id, 'complete-button').click
expect(page).to have_button('Lesson Completed')
expect(page).to have_no_button('Mark Complete')
expect(user.lesson_completions.pluck(:lesson_id)).to include(lesson.id)
end
it 'can change a completed lesson to incomplete' do
find(:test_id, 'complete-button').click
expect(page).to have_button('Lesson Completed')
expect(user.lesson_completions.pluck(:lesson_id)).to include(lesson.id)
find(:test_id, 'complete-button').click
expect(page).to have_button('Mark Complete')
expect(page).to have_no_button('Lesson Completed')
expect(user.lesson_completions.pluck(:lesson_id)).not_to include(lesson.id)
end
end
context 'when user is not signed in' do
it 'cannot complete a lesson' do
visit lesson_path(lesson)
expect(page).to have_no_button('Mark Complete')
expect(page).to have_no_button('Lesson Completed')
expect(find(:test_id, 'sign_in_button')).to have_content('Sign in to track progress')
end
end
end