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

Version Path
canvas_sync-0.22.9 spec/canvas_sync/processors/course_completion_report_processor_spec.rb
canvas_sync-0.22.8 spec/canvas_sync/processors/course_completion_report_processor_spec.rb
canvas_sync-0.22.6 spec/canvas_sync/processors/course_completion_report_processor_spec.rb
canvas_sync-0.22.5 spec/canvas_sync/processors/course_completion_report_processor_spec.rb
canvas_sync-0.22.4 spec/canvas_sync/processors/course_completion_report_processor_spec.rb