canvas_sync 0.9.4 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +8 -0
- data/lib/canvas_sync/api_syncable.rb +1 -0
- data/lib/canvas_sync/generators/install_generator.rb +3 -3
- data/lib/canvas_sync/generators/templates/migrations/create_accounts.rb +17 -0
- data/lib/canvas_sync/generators/templates/{models → migrations}/create_admins.rb +2 -2
- data/lib/canvas_sync/generators/templates/{models → migrations}/create_assignment_groups.rb +2 -2
- data/lib/canvas_sync/generators/templates/{models → migrations}/create_assignments.rb +7 -7
- data/lib/canvas_sync/generators/templates/{models → migrations}/create_context_module_items.rb +4 -4
- data/lib/canvas_sync/generators/templates/{models → migrations}/create_context_modules.rb +2 -2
- data/lib/canvas_sync/generators/templates/{models → migrations}/create_courses.rb +7 -8
- data/lib/canvas_sync/generators/templates/{models → migrations}/create_enrollments.rb +4 -6
- data/lib/canvas_sync/generators/templates/{models → migrations}/create_roles.rb +2 -2
- data/lib/canvas_sync/generators/templates/{models → migrations}/create_sections.rb +5 -5
- data/lib/canvas_sync/generators/templates/{models → migrations}/create_submissions.rb +2 -2
- data/lib/canvas_sync/generators/templates/{models → migrations}/create_terms.rb +2 -2
- data/lib/canvas_sync/generators/templates/{models → migrations}/create_users.rb +4 -4
- data/lib/canvas_sync/generators/templates/models/account.rb +4 -4
- data/lib/canvas_sync/generators/templates/models/admin.rb +4 -4
- data/lib/canvas_sync/generators/templates/models/assignment.rb +10 -9
- data/lib/canvas_sync/generators/templates/models/assignment_group.rb +5 -5
- data/lib/canvas_sync/generators/templates/models/context_module.rb +2 -2
- data/lib/canvas_sync/generators/templates/models/context_module_item.rb +3 -2
- data/lib/canvas_sync/generators/templates/models/course.rb +14 -14
- data/lib/canvas_sync/generators/templates/models/enrollment.rb +10 -9
- data/lib/canvas_sync/generators/templates/models/role.rb +3 -3
- data/lib/canvas_sync/generators/templates/models/section.rb +6 -6
- data/lib/canvas_sync/generators/templates/models/submission.rb +5 -5
- data/lib/canvas_sync/generators/templates/models/term.rb +4 -3
- data/lib/canvas_sync/generators/templates/models/user.rb +6 -6
- data/lib/canvas_sync/generators/templates/services/live_events/base_event.rb +4 -0
- data/lib/canvas_sync/generators/templates/services/live_events/course/course_event.rb +1 -1
- data/lib/canvas_sync/generators/templates/services/live_events/course_section/course_section_event.rb +4 -4
- data/lib/canvas_sync/generators/templates/services/live_events/module/module_event.rb +1 -1
- data/lib/canvas_sync/generators/templates/services/live_events/module_item/module_item_event.rb +3 -3
- data/lib/canvas_sync/generators/templates/services/live_events/user/user_event.rb +1 -1
- data/lib/canvas_sync/jobs/sync_provisioning_report_job.rb +7 -2
- data/lib/canvas_sync/jobs/sync_simple_table_job.rb +7 -2
- data/lib/canvas_sync/processors/model_mappings.yml +35 -41
- data/lib/canvas_sync/version.rb +1 -1
- data/spec/canvas_sync/jobs/sync_provisioning_report_job_spec.rb +4 -4
- data/spec/canvas_sync/jobs/sync_simple_table_job_spec.rb +3 -3
- data/spec/canvas_sync/models/accounts_spec.rb +2 -2
- data/spec/canvas_sync/models/admins_spec.rb +3 -3
- data/spec/canvas_sync/models/assignment_group_spec.rb +4 -4
- data/spec/canvas_sync/models/assignment_spec.rb +8 -8
- data/spec/canvas_sync/models/context_module_spec.rb +2 -2
- data/spec/canvas_sync/models/course_spec.rb +7 -8
- data/spec/canvas_sync/models/enrollment_spec.rb +5 -5
- data/spec/canvas_sync/models/roles_spec.rb +3 -3
- data/spec/canvas_sync/models/section_spec.rb +4 -4
- data/spec/canvas_sync/models/submission_spec.rb +5 -5
- data/spec/canvas_sync/models/term_spec.rb +7 -7
- data/spec/canvas_sync/models/user_spec.rb +4 -4
- data/spec/canvas_sync/processors/provisioning_report_processor_spec.rb +5 -5
- data/spec/canvas_sync/services/module_event_spec.rb +1 -1
- data/spec/canvas_sync/services/module_item_event_spec.rb +7 -7
- data/spec/dummy/app/models/account.rb +9 -1
- data/spec/dummy/app/models/admin.rb +4 -4
- data/spec/dummy/app/models/assignment.rb +23 -5
- data/spec/dummy/app/models/assignment_group.rb +15 -3
- data/spec/dummy/app/models/context_module.rb +2 -2
- data/spec/dummy/app/models/context_module_item.rb +3 -2
- data/spec/dummy/app/models/course.rb +20 -7
- data/spec/dummy/app/models/enrollment.rb +20 -4
- data/spec/dummy/app/models/role.rb +3 -3
- data/spec/dummy/app/models/section.rb +14 -3
- data/spec/dummy/app/models/submission.rb +16 -4
- data/spec/dummy/app/models/term.rb +4 -3
- data/spec/dummy/app/models/user.rb +15 -4
- data/spec/dummy/app/services/live_events/base_event.rb +4 -0
- data/spec/dummy/app/services/live_events/course_event.rb +1 -1
- data/spec/dummy/app/services/live_events/course_section_event.rb +4 -4
- data/spec/dummy/app/services/live_events/module_event.rb +1 -1
- data/spec/dummy/app/services/live_events/module_item_event.rb +3 -3
- data/spec/dummy/app/services/live_events/user_event.rb +1 -1
- data/spec/dummy/db/migrate/{20180216171618_create_submissions.rb → 20190521003447_create_submissions.rb} +4 -4
- data/spec/dummy/db/migrate/{20180103162102_create_roles.rb → 20190521003448_create_roles.rb} +2 -2
- data/spec/dummy/db/migrate/{20180109210452_create_admins.rb → 20190521003449_create_admins.rb} +2 -2
- data/spec/dummy/db/migrate/{20180222163506_create_assignment_groups.rb → 20190521003450_create_assignment_groups.rb} +2 -2
- data/spec/dummy/db/migrate/{20180411215348_create_context_modules.rb → 20190521003451_create_context_modules.rb} +2 -2
- data/spec/dummy/db/migrate/{20180215214227_create_assignments.rb → 20190603192310_create_assignments.rb} +11 -11
- data/spec/dummy/db/migrate/{20180605172338_create_context_module_items.rb → 20190603193502_create_context_module_items.rb} +4 -4
- data/spec/dummy/db/migrate/{20180509194201_create_users.rb → 20190603215718_create_users.rb} +4 -4
- data/spec/dummy/db/migrate/{20170906193506_create_terms.rb → 20190603215721_create_terms.rb} +2 -2
- data/spec/dummy/db/migrate/{20171107213207_create_sections.rb → 20190603215722_create_sections.rb} +5 -5
- data/spec/dummy/db/migrate/{20170914181345_create_courses.rb → 20190603220011_create_courses.rb} +7 -8
- data/spec/dummy/db/migrate/{20170905192509_create_enrollments.rb → 20190603220013_create_enrollments.rb} +4 -6
- data/spec/dummy/db/migrate/{20180220172559_create_accounts.rb → 20190604193942_create_accounts.rb} +6 -6
- data/spec/dummy/db/schema.rb +56 -58
- data/spec/dummy/log/test.log +1350 -0
- data/spec/factories/account_factory.rb +5 -5
- data/spec/factories/admin_factory.rb +1 -1
- data/spec/factories/assignment_factory.rb +1 -1
- data/spec/factories/assignment_group_factory.rb +1 -1
- data/spec/factories/context_module_factory.rb +2 -2
- data/spec/factories/context_module_item_factory.rb +1 -1
- data/spec/factories/course_factory.rb +5 -5
- data/spec/factories/enrollment_factory.rb +1 -1
- data/spec/factories/role_factory.rb +1 -1
- data/spec/factories/section_factory.rb +1 -1
- data/spec/factories/submission_factory.rb +1 -1
- data/spec/factories/term_factory.rb +1 -1
- data/spec/factories/user_factory.rb +1 -1
- data/spec/spec_helper.rb +1 -0
- metadata +41 -41
- data/lib/canvas_sync/generators/templates/models/create_accounts.rb +0 -17
data/lib/canvas_sync/version.rb
CHANGED
@@ -11,7 +11,7 @@ RSpec.describe CanvasSync::Jobs::SyncProvisioningReportJob do
|
|
11
11
|
|
12
12
|
it 'enqueues a ReportStarter for a provisioning report for the specified models for each term' do
|
13
13
|
expected_job_chain = Marshal.load(Marshal.dump(job_chain))
|
14
|
-
expected_job_chain[:global_options][:canvas_term_id] = active_term_1.
|
14
|
+
expected_job_chain[:global_options][:canvas_term_id] = active_term_1.canvas_id
|
15
15
|
|
16
16
|
expect(CanvasSync::Jobs::ReportStarter).to receive(:perform_later)
|
17
17
|
.with(
|
@@ -21,14 +21,14 @@ RSpec.describe CanvasSync::Jobs::SyncProvisioningReportJob do
|
|
21
21
|
"parameters[include_deleted]" => true,
|
22
22
|
"parameters[users]" => true,
|
23
23
|
"parameters[courses]" => true,
|
24
|
-
"parameters[enrollment_term_id]" => active_term_1.
|
24
|
+
"parameters[enrollment_term_id]" => active_term_1.canvas_id
|
25
25
|
},
|
26
26
|
CanvasSync::Processors::ProvisioningReportProcessor.to_s,
|
27
27
|
{ models: ['users', 'courses'], term_scope: 'active' }
|
28
28
|
)
|
29
29
|
|
30
30
|
expected_job_chain_2 = Marshal.load(Marshal.dump(job_chain))
|
31
|
-
expected_job_chain_2[:global_options][:canvas_term_id] = active_term_2.
|
31
|
+
expected_job_chain_2[:global_options][:canvas_term_id] = active_term_2.canvas_id
|
32
32
|
|
33
33
|
expect(CanvasSync::Jobs::ReportStarter).to receive(:perform_later)
|
34
34
|
.with(
|
@@ -38,7 +38,7 @@ RSpec.describe CanvasSync::Jobs::SyncProvisioningReportJob do
|
|
38
38
|
"parameters[include_deleted]" => true,
|
39
39
|
"parameters[users]" => true,
|
40
40
|
"parameters[courses]" => true,
|
41
|
-
"parameters[enrollment_term_id]" => active_term_2.
|
41
|
+
"parameters[enrollment_term_id]" => active_term_2.canvas_id
|
42
42
|
},
|
43
43
|
CanvasSync::Processors::ProvisioningReportProcessor.to_s,
|
44
44
|
{ models: ['users', 'courses'], term_scope: 'active' }
|
@@ -10,7 +10,7 @@ RSpec.describe CanvasSync::Jobs::SyncSimpleTableJob do
|
|
10
10
|
|
11
11
|
it 'enqueues a ReportStarter for a provisioning report for the specified model for a term' do
|
12
12
|
expected_job_chain = Marshal.load(Marshal.dump(job_chain))
|
13
|
-
expected_job_chain[:global_options][:canvas_term_id] = active_term_1.
|
13
|
+
expected_job_chain[:global_options][:canvas_term_id] = active_term_1.canvas_id
|
14
14
|
|
15
15
|
expect(CanvasSync::Jobs::ReportStarter).to receive(:perform_later)
|
16
16
|
.with(
|
@@ -19,7 +19,7 @@ RSpec.describe CanvasSync::Jobs::SyncSimpleTableJob do
|
|
19
19
|
{
|
20
20
|
"parameters[include_deleted]" => true,
|
21
21
|
"parameters[courses]" => true,
|
22
|
-
"parameters[enrollment_term_id]" => active_term_1.
|
22
|
+
"parameters[enrollment_term_id]" => active_term_1.canvas_id
|
23
23
|
},
|
24
24
|
CanvasSync::Processors::NormalProcessor.to_s,
|
25
25
|
{
|
@@ -31,7 +31,7 @@ RSpec.describe CanvasSync::Jobs::SyncSimpleTableJob do
|
|
31
31
|
params: {
|
32
32
|
"parameters[include_deleted]" => true,
|
33
33
|
"parameters[courses]" => true,
|
34
|
-
"parameters[enrollment_term_id]" => active_term_1.
|
34
|
+
"parameters[enrollment_term_id]" => active_term_1.canvas_id
|
35
35
|
}
|
36
36
|
}
|
37
37
|
)
|
@@ -4,8 +4,8 @@ RSpec.describe Account, type: :model do
|
|
4
4
|
let(:subject) { FactoryGirl.create(:account) }
|
5
5
|
|
6
6
|
describe 'validations' do
|
7
|
-
it { should validate_presence_of(:
|
8
|
-
it { should validate_uniqueness_of(:
|
7
|
+
it { should validate_presence_of(:canvas_id) }
|
8
|
+
it { should validate_uniqueness_of(:canvas_id) }
|
9
9
|
end
|
10
10
|
|
11
11
|
end
|
@@ -4,8 +4,8 @@ RSpec.describe Admin, type: :model do
|
|
4
4
|
let(:subject) { FactoryGirl.create(:admin) }
|
5
5
|
|
6
6
|
describe 'validations' do
|
7
|
-
it { should validate_presence_of(:
|
8
|
-
it { should validate_uniqueness_of(:
|
7
|
+
it { should validate_presence_of(:canvas_id) }
|
8
|
+
it { should validate_uniqueness_of(:canvas_id) }
|
9
9
|
end
|
10
10
|
|
11
11
|
describe '.create_or_update' do
|
@@ -27,7 +27,7 @@ RSpec.describe Admin, type: :model do
|
|
27
27
|
end
|
28
28
|
|
29
29
|
context 'the admin already exists' do
|
30
|
-
let!(:existing_admin) { FactoryGirl.create(:admin,
|
30
|
+
let!(:existing_admin) { FactoryGirl.create(:admin, canvas_id: admin_params['id']) }
|
31
31
|
|
32
32
|
it 'updates it' do
|
33
33
|
expect {
|
@@ -4,20 +4,20 @@ RSpec.describe AssignmentGroup, type: :model do
|
|
4
4
|
let(:subject) { FactoryGirl.create(:assignment_group) }
|
5
5
|
|
6
6
|
describe 'validations' do
|
7
|
-
it { should validate_presence_of(:
|
8
|
-
it { should validate_uniqueness_of(:
|
7
|
+
it { should validate_presence_of(:canvas_id) }
|
8
|
+
it { should validate_uniqueness_of(:canvas_id) }
|
9
9
|
end
|
10
10
|
|
11
11
|
describe 'associations' do
|
12
12
|
it do
|
13
13
|
should belong_to(:course)
|
14
|
-
.with_primary_key(:
|
14
|
+
.with_primary_key(:canvas_id)
|
15
15
|
.with_foreign_key(:canvas_course_id)
|
16
16
|
end
|
17
17
|
|
18
18
|
it do
|
19
19
|
should have_many(:assignments)
|
20
|
-
.with_primary_key(:
|
20
|
+
.with_primary_key(:canvas_id)
|
21
21
|
.with_foreign_key(:canvas_assignment_group_id)
|
22
22
|
end
|
23
23
|
end
|
@@ -4,27 +4,27 @@ RSpec.describe Assignment, type: :model do
|
|
4
4
|
let(:subject) { FactoryGirl.create(:assignment) }
|
5
5
|
|
6
6
|
describe "validations" do
|
7
|
-
it { should validate_presence_of(:
|
8
|
-
it { should validate_uniqueness_of(:
|
7
|
+
it { should validate_presence_of(:canvas_id) }
|
8
|
+
it { should validate_uniqueness_of(:canvas_id) }
|
9
9
|
end
|
10
10
|
|
11
11
|
describe "associations" do
|
12
12
|
it do
|
13
13
|
should have_many(:submissions)
|
14
|
-
.with_primary_key(:
|
14
|
+
.with_primary_key(:canvas_id)
|
15
15
|
.with_foreign_key(:canvas_assignment_id)
|
16
16
|
end
|
17
17
|
|
18
18
|
it do
|
19
19
|
should belong_to(:assignment_group)
|
20
|
-
.with_primary_key(:
|
20
|
+
.with_primary_key(:canvas_id)
|
21
21
|
.with_foreign_key(:canvas_assignment_group_id)
|
22
22
|
end
|
23
23
|
|
24
24
|
it do
|
25
25
|
should have_many(:context_module_items)
|
26
|
-
.with_primary_key(:
|
27
|
-
.with_foreign_key(:
|
26
|
+
.with_primary_key(:canvas_id)
|
27
|
+
.with_foreign_key(:canvas_content_id)
|
28
28
|
.dependent(:destroy)
|
29
29
|
end
|
30
30
|
|
@@ -35,10 +35,10 @@ RSpec.describe Assignment, type: :model do
|
|
35
35
|
let!(:matching_course) { FactoryGirl.create(:course) }
|
36
36
|
|
37
37
|
before do
|
38
|
-
subject.update_attributes(
|
38
|
+
subject.update_attributes(canvas_context_type: "Course", canvas_context_id: matching_course.canvas_id)
|
39
39
|
end
|
40
40
|
|
41
|
-
it "should belong to courses where the
|
41
|
+
it "should belong to courses where the canvas_context_type is Course and canvas_context_id is the canvas_course_id" do
|
42
42
|
expect(subject.context).to eq(matching_course)
|
43
43
|
end
|
44
44
|
end
|
@@ -5,12 +5,12 @@ RSpec.describe ContextModule, type: :model do
|
|
5
5
|
|
6
6
|
describe "associations" do
|
7
7
|
it do
|
8
|
-
should belong_to(:
|
8
|
+
should belong_to(:context)
|
9
9
|
end
|
10
10
|
|
11
11
|
it do
|
12
12
|
should have_many(:context_module_items)
|
13
|
-
.with_primary_key(:
|
13
|
+
.with_primary_key(:canvas_id)
|
14
14
|
.with_foreign_key(:canvas_context_module_id)
|
15
15
|
end
|
16
16
|
|
@@ -4,43 +4,42 @@ RSpec.describe Course, type: :model do
|
|
4
4
|
let(:subject) { FactoryGirl.create(:course) }
|
5
5
|
|
6
6
|
describe 'validations' do
|
7
|
-
it { should validate_presence_of(:
|
8
|
-
it { should validate_uniqueness_of(:
|
7
|
+
it { should validate_presence_of(:canvas_id) }
|
8
|
+
it { should validate_uniqueness_of(:canvas_id) }
|
9
9
|
end
|
10
10
|
|
11
11
|
describe 'associations' do
|
12
12
|
it do
|
13
13
|
should belong_to(:term)
|
14
|
-
.with_primary_key(:
|
14
|
+
.with_primary_key(:canvas_id)
|
15
15
|
.with_foreign_key(:canvas_term_id)
|
16
16
|
end
|
17
17
|
|
18
18
|
it do
|
19
19
|
should have_many(:enrollments)
|
20
|
-
.with_primary_key(:
|
20
|
+
.with_primary_key(:canvas_id)
|
21
21
|
.with_foreign_key(:canvas_course_id)
|
22
22
|
end
|
23
23
|
|
24
24
|
it do
|
25
25
|
should have_many(:sections)
|
26
|
-
.with_primary_key(:
|
26
|
+
.with_primary_key(:canvas_id)
|
27
27
|
.with_foreign_key(:canvas_course_id)
|
28
28
|
end
|
29
29
|
|
30
30
|
it do
|
31
31
|
should have_many(:assignment_groups)
|
32
|
-
.with_primary_key(:
|
32
|
+
.with_primary_key(:canvas_id)
|
33
33
|
.with_foreign_key(:canvas_course_id)
|
34
34
|
end
|
35
35
|
|
36
36
|
it do
|
37
37
|
should have_many(:assignments)
|
38
|
-
.with_primary_key(:
|
38
|
+
.with_primary_key(:canvas_id)
|
39
39
|
end
|
40
40
|
|
41
41
|
it do
|
42
42
|
should have_many(:submissions)
|
43
|
-
.with_primary_key(:canvas_course_id)
|
44
43
|
end
|
45
44
|
end
|
46
45
|
end
|
@@ -4,26 +4,26 @@ RSpec.describe Enrollment, type: :model do
|
|
4
4
|
let(:subject) { FactoryGirl.create(:enrollment) }
|
5
5
|
|
6
6
|
describe 'validations' do
|
7
|
-
it { should validate_presence_of(:
|
8
|
-
it { should validate_uniqueness_of(:
|
7
|
+
it { should validate_presence_of(:canvas_id) }
|
8
|
+
it { should validate_uniqueness_of(:canvas_id) }
|
9
9
|
end
|
10
10
|
|
11
11
|
describe 'associations' do
|
12
12
|
it do
|
13
13
|
should belong_to(:user)
|
14
|
-
.with_primary_key(:
|
14
|
+
.with_primary_key(:canvas_id)
|
15
15
|
.with_foreign_key(:canvas_user_id)
|
16
16
|
end
|
17
17
|
|
18
18
|
it do
|
19
19
|
should belong_to(:course)
|
20
|
-
.with_primary_key(:
|
20
|
+
.with_primary_key(:canvas_id)
|
21
21
|
.with_foreign_key(:canvas_course_id)
|
22
22
|
end
|
23
23
|
|
24
24
|
it do
|
25
25
|
should belong_to(:section)
|
26
|
-
.with_primary_key(:
|
26
|
+
.with_primary_key(:canvas_id)
|
27
27
|
.with_foreign_key(:canvas_section_id)
|
28
28
|
end
|
29
29
|
end
|
@@ -4,8 +4,8 @@ RSpec.describe Role, type: :model do
|
|
4
4
|
let(:subject) { FactoryGirl.create(:role) }
|
5
5
|
|
6
6
|
describe 'validations' do
|
7
|
-
it { should validate_presence_of(:
|
8
|
-
it { should validate_uniqueness_of(:
|
7
|
+
it { should validate_presence_of(:canvas_id) }
|
8
|
+
it { should validate_uniqueness_of(:canvas_id) }
|
9
9
|
end
|
10
10
|
|
11
11
|
describe '.create_or_update' do
|
@@ -27,7 +27,7 @@ RSpec.describe Role, type: :model do
|
|
27
27
|
end
|
28
28
|
|
29
29
|
context 'the role already exists' do
|
30
|
-
let!(:existing_role) { FactoryGirl.create(:role,
|
30
|
+
let!(:existing_role) { FactoryGirl.create(:role, canvas_id: role_params['id']) }
|
31
31
|
|
32
32
|
it 'updates it' do
|
33
33
|
expect {
|
@@ -4,20 +4,20 @@ RSpec.describe Section, type: :model do
|
|
4
4
|
let(:subject) { FactoryGirl.create(:section) }
|
5
5
|
|
6
6
|
describe 'validations' do
|
7
|
-
it { should validate_presence_of(:
|
8
|
-
it { should validate_uniqueness_of(:
|
7
|
+
it { should validate_presence_of(:canvas_id) }
|
8
|
+
it { should validate_uniqueness_of(:canvas_id) }
|
9
9
|
end
|
10
10
|
|
11
11
|
describe 'associations' do
|
12
12
|
it do
|
13
13
|
should belong_to(:course)
|
14
|
-
.with_primary_key(:
|
14
|
+
.with_primary_key(:canvas_id)
|
15
15
|
.with_foreign_key(:canvas_course_id)
|
16
16
|
end
|
17
17
|
|
18
18
|
it do
|
19
19
|
should have_many(:enrollments)
|
20
|
-
.with_primary_key(:
|
20
|
+
.with_primary_key(:canvas_id)
|
21
21
|
.with_foreign_key(:canvas_section_id)
|
22
22
|
end
|
23
23
|
end
|
@@ -4,26 +4,26 @@ RSpec.describe Submission, type: :model do
|
|
4
4
|
let(:subject) { FactoryGirl.create(:submission) }
|
5
5
|
|
6
6
|
describe "validations" do
|
7
|
-
it { should validate_presence_of(:
|
8
|
-
it { should validate_uniqueness_of(:
|
7
|
+
it { should validate_presence_of(:canvas_id) }
|
8
|
+
it { should validate_uniqueness_of(:canvas_id) }
|
9
9
|
end
|
10
10
|
|
11
11
|
describe 'associations' do
|
12
12
|
it do
|
13
13
|
should belong_to(:user)
|
14
|
-
.with_primary_key(:
|
14
|
+
.with_primary_key(:canvas_id)
|
15
15
|
.with_foreign_key(:canvas_user_id)
|
16
16
|
end
|
17
17
|
|
18
18
|
it do
|
19
19
|
should belong_to(:assignment)
|
20
|
-
.with_primary_key(:
|
20
|
+
.with_primary_key(:canvas_id)
|
21
21
|
.with_foreign_key(:canvas_assignment_id)
|
22
22
|
end
|
23
23
|
|
24
24
|
it do
|
25
25
|
should belong_to(:course)
|
26
|
-
.with_primary_key(:
|
26
|
+
.with_primary_key(:canvas_id)
|
27
27
|
.with_foreign_key(:canvas_course_id)
|
28
28
|
end
|
29
29
|
end
|
@@ -4,14 +4,14 @@ RSpec.describe Term, type: :model do
|
|
4
4
|
let(:subject) { FactoryGirl.create(:term) }
|
5
5
|
|
6
6
|
describe 'validations' do
|
7
|
-
it { should validate_presence_of(:
|
8
|
-
it { should validate_uniqueness_of(:
|
7
|
+
it { should validate_presence_of(:canvas_id) }
|
8
|
+
it { should validate_uniqueness_of(:canvas_id) }
|
9
9
|
end
|
10
10
|
|
11
11
|
describe 'associations' do
|
12
12
|
it do
|
13
13
|
should have_many(:courses)
|
14
|
-
.with_primary_key(:
|
14
|
+
.with_primary_key(:canvas_id)
|
15
15
|
.with_foreign_key(:canvas_term_id)
|
16
16
|
end
|
17
17
|
end
|
@@ -23,7 +23,7 @@ RSpec.describe Term, type: :model do
|
|
23
23
|
let!(:completed_term) { FactoryGirl.create(:term, start_at: 2.months.ago, end_at: 1.month.ago) }
|
24
24
|
let!(:unstarted_term) { FactoryGirl.create(:term, start_at: 6.months.from_now, end_at: 1.year.from_now) }
|
25
25
|
|
26
|
-
it 'returns terms with an active workflow_state that have a
|
26
|
+
it 'returns terms with an active workflow_state that have a start_at 15 days in the future or earlier and an end_at 15 days in the past or later' do
|
27
27
|
expect(Term.active).to match_array([active_term])
|
28
28
|
end
|
29
29
|
end
|
@@ -42,7 +42,7 @@ RSpec.describe Term, type: :model do
|
|
42
42
|
expect(term.name).to eq(term_params['name'])
|
43
43
|
expect(term.start_at).to eq(term_params['start_at'])
|
44
44
|
expect(term.end_at).to eq(term_params['end_at'])
|
45
|
-
expect(term.
|
45
|
+
expect(term.canvas_id).to eq(term_params['id'])
|
46
46
|
expect(term.grading_period_group_id).to eq(term_params['grading_period_group_id'])
|
47
47
|
expect(term.sis_id).to eq(term_params['sis_term_id'])
|
48
48
|
expect(term.workflow_state).to eq(term_params['workflow_state'])
|
@@ -50,7 +50,7 @@ RSpec.describe Term, type: :model do
|
|
50
50
|
end
|
51
51
|
|
52
52
|
context 'the term already exists' do
|
53
|
-
let!(:existing_term) { FactoryGirl.create(:term,
|
53
|
+
let!(:existing_term) { FactoryGirl.create(:term, canvas_id: term_params['id']) }
|
54
54
|
|
55
55
|
it 'updates it' do
|
56
56
|
expect {
|
@@ -61,7 +61,7 @@ RSpec.describe Term, type: :model do
|
|
61
61
|
expect(existing_term.name).to eq(term_params['name'])
|
62
62
|
expect(existing_term.start_at).to eq(term_params['start_at'])
|
63
63
|
expect(existing_term.end_at).to eq(term_params['end_at'])
|
64
|
-
expect(existing_term.
|
64
|
+
expect(existing_term.canvas_id).to eq(term_params['id'])
|
65
65
|
expect(existing_term.grading_period_group_id).to eq(term_params['grading_period_group_id'])
|
66
66
|
expect(existing_term.sis_id).to eq(term_params['sis_term_id'])
|
67
67
|
expect(existing_term.workflow_state).to eq(term_params['workflow_state'])
|
@@ -4,20 +4,20 @@ RSpec.describe User, type: :model do
|
|
4
4
|
let(:subject) { FactoryGirl.create(:user) }
|
5
5
|
|
6
6
|
describe 'validations' do
|
7
|
-
it { should validate_presence_of(:
|
8
|
-
it { should validate_uniqueness_of(:
|
7
|
+
it { should validate_presence_of(:canvas_id) }
|
8
|
+
it { should validate_uniqueness_of(:canvas_id) }
|
9
9
|
end
|
10
10
|
|
11
11
|
describe 'associations' do
|
12
12
|
it do
|
13
13
|
should have_many(:enrollments)
|
14
|
-
.with_primary_key(:
|
14
|
+
.with_primary_key(:canvas_id)
|
15
15
|
.with_foreign_key(:canvas_user_id)
|
16
16
|
end
|
17
17
|
|
18
18
|
it do
|
19
19
|
should have_many(:submissions)
|
20
|
-
.with_primary_key(:
|
20
|
+
.with_primary_key(:canvas_id)
|
21
21
|
.with_foreign_key(:canvas_user_id)
|
22
22
|
end
|
23
23
|
end
|
@@ -15,8 +15,8 @@ RSpec.describe CanvasSync::Processors::ProvisioningReportProcessor do
|
|
15
15
|
subject.process('spec/support/fixtures/reports/courses.csv', { models: ['courses'] }, 1)
|
16
16
|
}.to change { Course.count }.by(2)
|
17
17
|
course = Course.first
|
18
|
-
expect(course.
|
19
|
-
expect(course.
|
18
|
+
expect(course.start_at).to eq DateTime.parse("2017-03-27 21:53:18")
|
19
|
+
expect(course.end_at).to eq DateTime.parse("2017-04-27 12:21:18")
|
20
20
|
end
|
21
21
|
|
22
22
|
it 'processes enrollments' do
|
@@ -30,15 +30,15 @@ RSpec.describe CanvasSync::Processors::ProvisioningReportProcessor do
|
|
30
30
|
subject.process('spec/support/fixtures/reports/sections.csv', { models: ['sections'] }, 1)
|
31
31
|
}.to change { Section.count }.by(2)
|
32
32
|
section = Section.first
|
33
|
-
expect(section.
|
34
|
-
expect(section.
|
33
|
+
expect(section.start_at).to eq DateTime.parse("2017-03-27 21:53:18")
|
34
|
+
expect(section.end_at).to eq DateTime.parse("2017-03-27 21:53:18")
|
35
35
|
end
|
36
36
|
|
37
37
|
it 'processes xlist' do
|
38
38
|
subject.process('spec/support/fixtures/reports/xlist.csv', { models: ['xlist'] }, 1)
|
39
39
|
expect(Section.where.not(canvas_nonxlist_course_id: nil).count).to eq 1
|
40
40
|
cross_listed_section = Section.where.not(canvas_nonxlist_course_id: nil).first
|
41
|
-
expect(cross_listed_section.
|
41
|
+
expect(cross_listed_section.canvas_id).to eq 2
|
42
42
|
expect(cross_listed_section.canvas_nonxlist_course_id).to eq 2
|
43
43
|
end
|
44
44
|
|