gaku 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +12 -4
- data/VERSION +1 -1
- data/core/app/controllers/concerns/enrollments_controller.rb +1 -2
- data/core/app/controllers/gaku/contacts_controller.rb +3 -3
- data/core/app/controllers/gaku/notes_controller.rb +33 -24
- data/core/app/controllers/gaku/syllabuses_controller.rb +44 -16
- data/core/app/models/gaku/address.rb +1 -1
- data/core/app/models/gaku/class_group_enrollment.rb +4 -3
- data/core/app/models/gaku/contact.rb +2 -2
- data/core/app/models/gaku/grading_method_set.rb +1 -1
- data/core/app/views/gaku/class_groups/students/enroll_students.js.erb +6 -0
- data/core/app/views/gaku/contacts/_form_fields.html.slim +1 -1
- data/core/app/views/gaku/notes/create.js.erb +3 -3
- data/core/app/views/gaku/notes/destroy.js.erb +3 -3
- data/core/app/views/gaku/notes/edit.js.erb +1 -1
- data/core/app/views/gaku/notes/new.js.erb +1 -1
- data/core/app/views/gaku/notes/show.js.erb +1 -1
- data/core/app/views/gaku/notes/update.js.erb +2 -2
- data/core/app/views/gaku/syllabuses/_syllabus_fields.html.slim +2 -3
- data/core/app/views/gaku/syllabuses/_syllabuses.html.slim +1 -1
- data/core/app/views/gaku/syllabuses/create.js.erb +4 -3
- data/core/app/views/gaku/syllabuses/destroy.js.erb +1 -1
- data/core/app/views/gaku/syllabuses/{show.html.slim → edit.html.slim} +0 -0
- data/core/app/views/gaku/syllabuses/edit.js.erb +1 -1
- data/core/app/views/gaku/syllabuses/new.js.erb +1 -1
- data/core/app/views/gaku/syllabuses/update.js.erb +1 -1
- data/core/config/routes.rb +0 -8
- data/core/gaku_core.gemspec +15 -11
- data/core/lib/gaku/testing/factories/note_factory.rb +4 -0
- data/core/lib/gaku/testing/factories/syllabus_factory.rb +4 -0
- data/core/lib/gaku/testing/request_helpers.rb +5 -0
- data/core/spec/controllers/gaku/addresses_controller_spec.rb +1 -1
- data/core/spec/controllers/gaku/contacts_controller_spec.rb +83 -12
- data/core/spec/controllers/gaku/notes_controller_spec.rb +143 -0
- data/core/spec/controllers/gaku/syllabuses_controller_spec.rb +140 -0
- data/core/spec/requests/admin/achievements/achievements_spec.rb +1 -1
- data/core/spec/requests/admin/grading/grading_method_set_items_spec.rb +1 -1
- data/core/spec/requests/admin/grading/grading_method_sets_spec.rb +1 -1
- data/core/spec/requests/admin/grading/grading_methods_spec.rb +1 -1
- data/core/spec/requests/admin/roles_spec.rb +1 -1
- data/core/spec/requests/admin/school_years/school_years_spec.rb +1 -1
- data/core/spec/requests/admin/school_years/semesters_spec.rb +1 -1
- data/core/spec/requests/admin/schools/campuses/addresses_spec.rb +1 -1
- data/core/spec/requests/admin/schools/campuses/campuses_spec.rb +1 -1
- data/core/spec/requests/admin/schools/campuses/contacts_spec.rb +10 -22
- data/core/spec/requests/admin/schools/programs_spec.rb +1 -1
- data/core/spec/requests/admin/schools/school_levels_spec.rb +1 -1
- data/core/spec/requests/admin/schools/schools_spec.rb +1 -1
- data/core/spec/requests/admin/specialties_spec.rb +1 -1
- data/core/spec/requests/admin/templates_spec.rb +1 -1
- data/core/spec/requests/admin/types_and_methods/attendance_types_spec.rb +1 -1
- data/core/spec/requests/admin/types_and_methods/commute_method_types_spec.rb +1 -1
- data/core/spec/requests/admin/types_and_methods/contact_types_spec.rb +1 -1
- data/core/spec/requests/admin/types_and_methods/enrollment_statuses_spec.rb +1 -1
- data/core/spec/requests/admin/types_and_methods/states_spec.rb +1 -1
- data/core/spec/requests/admin/users_spec.rb +1 -1
- data/core/spec/requests/class_groups/class_groups_spec.rb +1 -1
- data/core/spec/requests/class_groups/notes_spec.rb +6 -13
- data/core/spec/requests/class_groups/semester_class_groups_spec.rb +1 -1
- data/core/spec/requests/course_groups/course_groups_spec.rb +1 -1
- data/core/spec/requests/courses/courses_spec.rb +1 -1
- data/core/spec/requests/courses/notes_spec.rb +6 -11
- data/core/spec/requests/courses/semester_courses_spec.rb +1 -1
- data/core/spec/requests/exams/exam_portions/attachments_spec.rb +1 -1
- data/core/spec/requests/exams/notes_spec.rb +6 -11
- data/core/spec/requests/students/achievements_spec.rb +1 -1
- data/core/spec/requests/students/contacts_spec.rb +7 -7
- data/core/spec/requests/students/guardians/contacts_spec.rb +9 -17
- data/core/spec/requests/students/notes_spec.rb +5 -9
- data/core/spec/requests/students/simple_grades_spec.rb +1 -1
- data/core/spec/requests/students/specialties_spec.rb +1 -1
- data/core/spec/requests/syllabuses/exams_spec.rb +5 -5
- data/core/spec/requests/syllabuses/notes_spec.rb +5 -10
- data/core/spec/requests/syllabuses/syllabuses_spec.rb +46 -85
- data/core/spec/requests/teachers/contacts_spec.rb +11 -19
- data/core/spec/requests/teachers/notes_spec.rb +5 -10
- data/core/spec/support/requests/shared_addresses_spec.rb +6 -2
- data/core/spec/support/requests/shared_contacts_spec.rb +19 -15
- data/core/spec/support/requests/shared_notes_spec.rb +36 -35
- data/gaku_dependencies.rb +1 -8
- metadata +9 -9
- data/core/app/controllers/gaku/assignments_controller.rb +0 -15
- data/core/spec/controllers/gaku/syllabuses/syllabuses_controller_spec.rb +0 -92
@@ -0,0 +1,140 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Gaku::SyllabusesController do
|
4
|
+
|
5
|
+
let(:syllabus) { create(:syllabus) }
|
6
|
+
let(:invalid_syllabus) { create(:invalid_syllabus) }
|
7
|
+
|
8
|
+
context 'as admin' do
|
9
|
+
before { as :admin }
|
10
|
+
|
11
|
+
context 'html' do
|
12
|
+
describe 'GET #index' do
|
13
|
+
before do
|
14
|
+
syllabus
|
15
|
+
gaku_get :index
|
16
|
+
end
|
17
|
+
|
18
|
+
it { should respond_with 200 }
|
19
|
+
it('assigns @syllabuses') { expect(assigns(:syllabuses)).to eq [syllabus] }
|
20
|
+
it('assigns @count') { expect(assigns(:count)).to eq 1 }
|
21
|
+
it('renders :index template') { template? :index }
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
context 'js' do
|
26
|
+
|
27
|
+
describe 'XHR #new' do
|
28
|
+
before { gaku_js_get :new }
|
29
|
+
|
30
|
+
it { should respond_with 200 }
|
31
|
+
it('assigns @syllabus') { expect(assigns(:syllabus)).to be_a_new(Gaku::Syllabus) }
|
32
|
+
it('renders the :new template') { template? :new }
|
33
|
+
end
|
34
|
+
|
35
|
+
describe 'POST #create' do
|
36
|
+
context 'with valid attributes' do
|
37
|
+
let(:valid_js_create) do
|
38
|
+
gaku_js_post :create, syllabus: attributes_for(:syllabus)
|
39
|
+
end
|
40
|
+
|
41
|
+
it 'creates new syllabus' do
|
42
|
+
expect do
|
43
|
+
valid_js_create
|
44
|
+
end.to change(Gaku::Syllabus, :count).by(1)
|
45
|
+
end
|
46
|
+
|
47
|
+
it 'renders flash' do
|
48
|
+
valid_js_create
|
49
|
+
flash_created?
|
50
|
+
end
|
51
|
+
|
52
|
+
it 'increments @count' do
|
53
|
+
valid_js_create
|
54
|
+
expect(assigns(:count)).to eq 1
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
context 'with invalid attributes' do
|
59
|
+
let(:invalid_js_create) do
|
60
|
+
gaku_js_post :create, syllabus: attributes_for(:invalid_syllabus)
|
61
|
+
end
|
62
|
+
|
63
|
+
it 'does not save the new syllabus' do
|
64
|
+
expect do
|
65
|
+
invalid_js_create
|
66
|
+
end.to_not change(Gaku::Syllabus, :count)
|
67
|
+
end
|
68
|
+
|
69
|
+
it 're-renders the new method' do
|
70
|
+
invalid_js_create
|
71
|
+
template? :create
|
72
|
+
end
|
73
|
+
|
74
|
+
it "doesn't increment @count" do
|
75
|
+
invalid_js_create
|
76
|
+
expect(assigns(:count)).to eq 0
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
describe 'XHR #edit' do
|
82
|
+
before { gaku_js_get :edit, id: syllabus }
|
83
|
+
|
84
|
+
it { should respond_with 200 }
|
85
|
+
it('assigns @syllabus') { expect(assigns(:syllabus)).to eq syllabus }
|
86
|
+
it('renders the :edit template') { template? :edit }
|
87
|
+
end
|
88
|
+
|
89
|
+
describe 'PATCH #update' do
|
90
|
+
context 'with valid attributes' do
|
91
|
+
before do
|
92
|
+
gaku_js_patch :update, id: syllabus, syllabus: attributes_for(:syllabus, name: 'mobifon')
|
93
|
+
end
|
94
|
+
|
95
|
+
it { should respond_with 200 }
|
96
|
+
it('assigns @syllabus') { expect(assigns(:syllabus)).to eq syllabus }
|
97
|
+
it('sets flash') { flash_updated? }
|
98
|
+
it "changes syllabus's attributes" do
|
99
|
+
syllabus.reload
|
100
|
+
expect(syllabus.name).to eq 'mobifon'
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
context 'with invalid attributes' do
|
105
|
+
before do
|
106
|
+
gaku_js_patch :update, id: syllabus, syllabus: attributes_for(:invalid_syllabus, name: '')
|
107
|
+
end
|
108
|
+
|
109
|
+
it { should respond_with 200 }
|
110
|
+
it('assigns @syllabus') { expect(assigns(:syllabus)).to eq syllabus }
|
111
|
+
|
112
|
+
it "does not change syllabus's attributes" do
|
113
|
+
syllabus.reload
|
114
|
+
expect(syllabus.name).not_to eq ''
|
115
|
+
end
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
119
|
+
describe 'XHR DELETE #destroy' do
|
120
|
+
it 'deletes the syllabus' do
|
121
|
+
syllabus
|
122
|
+
expect do
|
123
|
+
gaku_js_delete :destroy, id: syllabus
|
124
|
+
end.to change(Gaku::Syllabus, :count).by(-1)
|
125
|
+
end
|
126
|
+
|
127
|
+
it 'decrements @count' do
|
128
|
+
gaku_js_delete :destroy, id: syllabus
|
129
|
+
expect(assigns(:count)).to eq 0
|
130
|
+
end
|
131
|
+
|
132
|
+
it 'sets flash' do
|
133
|
+
gaku_js_delete :destroy, id: syllabus
|
134
|
+
flash_destroyed?
|
135
|
+
end
|
136
|
+
end
|
137
|
+
end
|
138
|
+
|
139
|
+
end
|
140
|
+
end
|
@@ -41,7 +41,7 @@ describe 'Admin Roles' do
|
|
41
41
|
|
42
42
|
context 'edit', js: true do
|
43
43
|
before do
|
44
|
-
within('#admin-roles-index tbody tr:nth-child(2)') { click
|
44
|
+
within('#admin-roles-index tbody tr:nth-child(2)') { click js_edit_link }
|
45
45
|
wait_until_visible modal
|
46
46
|
end
|
47
47
|
|
@@ -3,19 +3,15 @@ require 'spec_helper'
|
|
3
3
|
describe 'Admin School Campus Contact' do
|
4
4
|
|
5
5
|
before { as :admin }
|
6
|
+
before(:all) { set_resource 'admin-school-campus-contact' }
|
6
7
|
|
7
8
|
let(:school) { create(:school) }
|
8
|
-
let(:contact_type) { create(:contact_type, name: 'Email') }
|
9
|
-
|
10
|
-
before :all do
|
11
|
-
set_resource 'admin-school-campus-contact'
|
12
|
-
end
|
9
|
+
let!(:contact_type) { create(:contact_type, name: 'Email') }
|
13
10
|
|
14
11
|
context 'new', js: true, type: 'contact' do
|
15
12
|
before do
|
16
|
-
|
17
|
-
|
18
|
-
visit gaku.admin_school_campus_path(school, school.campuses.first)
|
13
|
+
@resource = school.campuses.first
|
14
|
+
visit gaku.admin_school_campus_path(school, @resource)
|
19
15
|
end
|
20
16
|
|
21
17
|
it_behaves_like 'new contact'
|
@@ -27,19 +23,13 @@ describe 'Admin School Campus Contact' do
|
|
27
23
|
before do
|
28
24
|
@school = create(:school_with_one_contact)
|
29
25
|
@school.reload
|
30
|
-
@
|
26
|
+
@resource = @school.campuses.first
|
31
27
|
end
|
32
28
|
|
33
29
|
context 'edit' do
|
34
|
-
before
|
35
|
-
contact_type
|
36
|
-
visit gaku.admin_school_campus_path(@school, @school.campuses.first)
|
37
|
-
end
|
38
|
-
|
30
|
+
before { visit gaku.admin_school_campus_path(@school, @resource) }
|
39
31
|
it_behaves_like 'edit contact'
|
40
|
-
|
41
|
-
it_behaves_like 'delete contact', @data
|
42
|
-
|
32
|
+
it_behaves_like 'delete contact', @resource
|
43
33
|
end
|
44
34
|
end
|
45
35
|
|
@@ -48,14 +38,12 @@ describe 'Admin School Campus Contact' do
|
|
48
38
|
before do
|
49
39
|
@school = create(:school_with_two_contacts)
|
50
40
|
@school.reload
|
51
|
-
@
|
52
|
-
visit gaku.admin_school_campus_path(@school, @
|
41
|
+
@resource = @school.campuses.first
|
42
|
+
visit gaku.admin_school_campus_path(@school, @resource)
|
53
43
|
end
|
54
44
|
|
55
45
|
it_behaves_like 'primary contacts'
|
56
|
-
|
57
46
|
end
|
58
|
-
|
59
|
-
|
60
47
|
end
|
48
|
+
|
61
49
|
end
|
@@ -48,7 +48,7 @@ describe 'Admin Users' do
|
|
48
48
|
|
49
49
|
context 'edit', js: true do
|
50
50
|
before do
|
51
|
-
within("#admin-users-index tbody tr#user-#{user.id}") { click
|
51
|
+
within("#admin-users-index tbody tr#user-#{user.id}") { click js_edit_link }
|
52
52
|
wait_until_visible modal
|
53
53
|
end
|
54
54
|
|
@@ -3,19 +3,15 @@ require 'spec_helper'
|
|
3
3
|
describe 'ClassGroup Notes' do
|
4
4
|
|
5
5
|
before { as :admin }
|
6
|
+
before(:all) { set_resource 'class-group-note' }
|
6
7
|
|
7
8
|
let(:class_group) { create(:class_group) }
|
8
|
-
let(:
|
9
|
-
|
10
|
-
before :all do
|
11
|
-
set_resource 'class-group-note'
|
12
|
-
end
|
9
|
+
let(:class_group_with_note) { create(:class_group, :with_note) }
|
13
10
|
|
14
11
|
context 'new', type: 'note' do
|
15
12
|
before do
|
16
|
-
class_group
|
17
|
-
visit gaku.class_group_path(
|
18
|
-
@data = class_group
|
13
|
+
@resource = class_group
|
14
|
+
visit gaku.class_group_path(@resource)
|
19
15
|
end
|
20
16
|
|
21
17
|
it_behaves_like 'new note'
|
@@ -23,15 +19,12 @@ describe 'ClassGroup Notes' do
|
|
23
19
|
|
24
20
|
context 'existing', js: true, type: 'note' do
|
25
21
|
before do
|
26
|
-
|
27
|
-
visit gaku.class_group_path(
|
28
|
-
@data = class_group
|
22
|
+
@resource = class_group_with_note
|
23
|
+
visit gaku.class_group_path(@resource)
|
29
24
|
end
|
30
25
|
|
31
26
|
it_behaves_like 'edit note'
|
32
|
-
|
33
27
|
it_behaves_like 'delete note'
|
34
|
-
|
35
28
|
end
|
36
29
|
|
37
30
|
end
|