Sha256: 9e9f338c80ae7ddc386ec9f1c8ca1695276a7dc904ce60a0c3f52ec8a5e86662
Contents?: true
Size: 1.54 KB
Versions: 5
Compression:
Stored size: 1.54 KB
Contents
require "spec_helper" RSpec.describe CanvasSync::Processors::CourseCompletionReportProcessor do describe '#process' do it 'inserts course progresses' do expect { described_class.process('spec/support/fixtures/reports/course_progresses.csv', {}, 1) }.to change { CourseProgress.count }.by(2) cp = CourseProgress.first expect(cp).to have_attributes( canvas_user_id: 1, canvas_course_id: 1, requirement_count: 0, requirement_completed_count: 0, ) expect(cp.completion_date.strftime('%Y-%m-%d %H:%M:%S')).to eq('2024-05-01 09:00:00') expect(CourseProgress.last).to have_attributes( canvas_user_id: 2, canvas_course_id: 2, requirement_count: 1, requirement_completed_count: 1, completion_date: nil ) end context 'record already present in the database' do before do described_class.process('spec/support/fixtures/reports/course_progresses.csv', {}, 1) end it 'updates the course progress' do expect { described_class.process('spec/support/fixtures/reports/course_progresses_conflict.csv', {}, 1) }.to change { CourseProgress.count }.by(0) cp = CourseProgress.first expect(cp).to have_attributes( canvas_user_id: 1, canvas_course_id: 1, requirement_count: 10, requirement_completed_count: 10, ) expect(cp.completion_date.strftime('%Y-%m-%d %H:%M:%S')).to eq('2028-05-01 09:00:00') end end end end
Version data entries
5 entries across 5 versions & 1 rubygems