[ui test] Setting up school course+program and their dependencies (#10142)
* setting up course and its dependencies
* rebasing with develop branch
* codacy fix
* added test for Program
* updated test-dada to maintain consistency with future tests
diff --git a/erpnext/schools/doctype/assessment_criteria/test_assessment_criteria.js b/erpnext/schools/doctype/assessment_criteria/test_assessment_criteria.js
new file mode 100644
index 0000000..6c0540e
--- /dev/null
+++ b/erpnext/schools/doctype/assessment_criteria/test_assessment_criteria.js
@@ -0,0 +1,16 @@
+// School Assessment module
+QUnit.module('schools');
+
+QUnit.test('Test: Assessment Criteria', function(assert){
+ assert.expect(0);
+ let done = assert.async();
+ frappe.run_serially([
+ () => {
+ return frappe.tests.make('Assessment Criteria', [
+ {assessment_criteria: 'Pass'},
+ {assessment_criteria_group: 'Reservation'}
+ ]);
+ },
+ () => done()
+ ]);
+});
\ No newline at end of file
diff --git a/erpnext/schools/doctype/assessment_criteria_group/test_assessment_criteria_group.js b/erpnext/schools/doctype/assessment_criteria_group/test_assessment_criteria_group.js
new file mode 100644
index 0000000..92dba1d
--- /dev/null
+++ b/erpnext/schools/doctype/assessment_criteria_group/test_assessment_criteria_group.js
@@ -0,0 +1,15 @@
+// School Assessment module
+QUnit.module('schools');
+
+QUnit.test('Test: Assessment Criteria Group', function(assert){
+ assert.expect(0);
+ let done = assert.async();
+ frappe.run_serially([
+ () => {
+ return frappe.tests.make('Assessment Criteria Group', [
+ {assessment_criteria_group: 'Reservation'}
+ ]);
+ },
+ () => done()
+ ]);
+});
\ No newline at end of file
diff --git a/erpnext/schools/doctype/course/test_course.js b/erpnext/schools/doctype/course/test_course.js
new file mode 100644
index 0000000..4866730
--- /dev/null
+++ b/erpnext/schools/doctype/course/test_course.js
@@ -0,0 +1,36 @@
+// Testing Setup Module in Schools
+QUnit.module('schools');
+
+QUnit.test('test course', function(assert) {
+ assert.expect(8);
+ let done = assert.async();
+ frappe.run_serially([
+ () => {
+ return frappe.tests.make('Course', [
+ {course_name: 'Test_Subject'},
+ {course_code: 'Test_Sub'},
+ {department: 'Test Department'},
+ {course_abbreviation: 'Test_Sub'},
+ {course_intro: 'Test Subject Intro'},
+ {default_grading_scale: 'GTU'},
+ {assessment_criteria: [
+ [
+ {assessment_criteria: 'Pass'},
+ {weightage: 100}
+ ]
+ ]}
+ ]);
+ },
+ () => {
+ assert.ok(cur_frm.doc.course_name == 'Test_Subject', 'Course name correctly set');
+ assert.ok(cur_frm.doc.course_code == 'Test_Sub', 'Course code correctly set');
+ assert.ok(cur_frm.doc.department == 'Test Department', 'Department selected correctly');
+ assert.ok(cur_frm.doc.course_abbreviation == 'Test_Sub');
+ assert.ok(cur_frm.doc.course_intro == 'Test Subject Intro');
+ assert.ok(cur_frm.doc.default_grading_scale == 'GTU', 'Grading scale selected correctly');
+ assert.ok(cur_frm.doc.assessment_criteria[0].assessment_criteria == 'Pass', 'Assessment criteria selected correctly');
+ assert.ok(cur_frm.doc.assessment_criteria[0].weightage == '100');
+ },
+ () => done()
+ ]);
+});
\ No newline at end of file
diff --git a/erpnext/schools/doctype/grading_scale/test_grading_scale.js b/erpnext/schools/doctype/grading_scale/test_grading_scale.js
new file mode 100644
index 0000000..6539343
--- /dev/null
+++ b/erpnext/schools/doctype/grading_scale/test_grading_scale.js
@@ -0,0 +1,28 @@
+// School Assessment module
+QUnit.module('schools');
+
+QUnit.test('Test: Grading Scale', function(assert){
+ assert.expect(0);
+ let done = assert.async();
+ frappe.run_serially([
+ () => {
+ return frappe.tests.make('Grading Scale', [
+ {grading_scale_name: 'GTU'},
+ {description: 'The score will be set according to 10 based system.'},
+ {intervals: [
+ [
+ {grade_code: 'AA'},
+ {threshold: '90'},
+ {grade_description: 'Distinction'}
+ ],
+ [
+ {grade_code: 'FF'},
+ {threshold: '0'},
+ {grade_description: 'Fail'}
+ ]
+ ]}
+ ]);
+ },
+ () => done()
+ ]);
+});
\ No newline at end of file
diff --git a/erpnext/schools/doctype/program/test_program.js b/erpnext/schools/doctype/program/test_program.js
new file mode 100644
index 0000000..16bc932
--- /dev/null
+++ b/erpnext/schools/doctype/program/test_program.js
@@ -0,0 +1,78 @@
+// Testing Setup Module in Schools
+QUnit.module('schools');
+
+QUnit.test('Test: Program', function(assert){
+ assert.expect(11);
+ let done = assert.async();
+ let fee_structure_code;
+ frappe.run_serially([
+ () => {
+ return frappe.tests.make('Program', [
+ {program_name: 'Standard Test'},
+ {program_code: 'Standard Test'},
+ {department: 'Test Department'},
+ {program_abbreviation: 'Standard Test'},
+ {courses: [
+ [
+ {course: 'Test_Sub'},
+ {required: true}
+ ]
+ ]}
+ ]);
+ },
+
+ () => cur_frm.save(),
+ // Setting up Fee Category to select in Program doctype
+ () => {
+ return frappe.tests.make('Fee Category', [
+ {category_name: 'Reservation'},
+ {description: 'Special Provision'}
+ ]);
+ },
+ // Setting up Fee Structure to be selected in Program doctype
+ () => {
+ return frappe.tests.make('Fee Structure', [
+ {program: 'Standard Test'},
+ {academic_term: '2016-17 (Semester 1)'},
+ {student_category: 'Reservation'},
+ {components: [
+ [
+ {fees_category: 'Reservation'},
+ {amount: 20000}
+ ]
+ ]}
+ ]);
+ },
+ () => {fee_structure_code = frappe.get_route()[2];}, // Storing naming convention of Fee Structure entry
+ () => frappe.set_route('Form', ('Program/Standard Test')), // Routing to our current Program doctype
+
+ () => $('.shaded-section~ .visible-section+ .visible-section .grid-add-row').trigger('click'), // clicking on Add Row button
+ // Storing data that were inter-dependent
+ () => cur_frm.doc.fees[0].academic_term = '2016-17 (Semester 1)',
+ () => cur_frm.doc.fees[0].student_category = 'Reservation',
+ () => cur_frm.doc.fees[0].due_date = '2016-08-20',
+ () => $('.error').trigger('click'),
+ () => $('.bold.input-sm').trigger('focus'),
+ () => frappe.timeout(1),
+ () => $('.bold.input-sm').trigger('focus'),
+ () => $('.bold.input-sm').val(fee_structure_code),
+ () => $('.bold.input-sm').trigger('focus'),
+ () => frappe.timeout(1),
+ () => cur_frm.save(),
+
+ () => {
+ assert.ok(cur_frm.doc.program_name == 'Standard Test');
+ assert.ok(cur_frm.doc.program_code == 'Standard Test');
+ assert.ok(cur_frm.doc.department == 'Test Department');
+ assert.ok(cur_frm.doc.program_abbreviation == 'Standard Test');
+ assert.ok(cur_frm.doc.courses[0].course == 'Test_Sub');
+ assert.ok(cur_frm.doc.courses[0].required == true);
+ assert.ok(cur_frm.doc.fees[0].academic_term == '2016-17 (Semester 1)');
+ assert.ok(cur_frm.doc.fees[0].fee_structure == fee_structure_code);
+ assert.ok(cur_frm.doc.fees[0].student_category == 'Reservation');
+ assert.ok(cur_frm.doc.fees[0].due_date == '2016-08-20');
+ assert.ok(cur_frm.doc.fees[0].amount == 20000);
+ },
+ () => done()
+ ]);
+});
\ No newline at end of file
diff --git a/erpnext/tests/ui/tests.txt b/erpnext/tests/ui/tests.txt
index 3943144..4acdf3c 100644
--- a/erpnext/tests/ui/tests.txt
+++ b/erpnext/tests/ui/tests.txt
@@ -36,3 +36,8 @@
erpnext/manufacturing/doctype/production_order/test_production_order.js
erpnext/accounts/page/pos/test_pos.js
erpnext/selling/doctype/product_bundle/test_product_bundle.js
+erpnext/schools/doctype/grading_scale/test_grading_scale.js
+erpnext/schools/doctype/assessment_criteria_group/test_assessment_criteria_group.js
+erpnext/schools/doctype/assessment_criteria/test_assessment_criteria.js
+erpnext/schools/doctype/course/test_course.js
+erpnext/schools/doctype/program/test_program.js