[ui tests] Student attendance and leave application (#10326)
* spelling error rectified * setting up leave application * marking attendance and checking * typo error fixed
This commit is contained in:
parent
135560e170
commit
17e35e6ac7
@ -0,0 +1,31 @@
|
|||||||
|
// Testing Attendance Module in Schools
|
||||||
|
QUnit.module('schools');
|
||||||
|
|
||||||
|
QUnit.test('Test: Student Attendance', function(assert){
|
||||||
|
assert.expect(2);
|
||||||
|
let done = assert.async();
|
||||||
|
let student_code;
|
||||||
|
|
||||||
|
frappe.run_serially([
|
||||||
|
() => frappe.db.get_value('Student', {'student_email_id': 'test2@testmail.com'}, 'name'),
|
||||||
|
(student) => {student_code = student.message.name;}, // fetching student code from db
|
||||||
|
|
||||||
|
() => {
|
||||||
|
return frappe.tests.make('Student Attendance', [
|
||||||
|
{student: student_code},
|
||||||
|
{date: frappe.datetime.nowdate()},
|
||||||
|
{student_group: "test-batch-wise-group-2"},
|
||||||
|
{status: "Absent"}
|
||||||
|
]);
|
||||||
|
},
|
||||||
|
|
||||||
|
() => frappe.timeout(0.5),
|
||||||
|
() => {assert.equal(cur_frm.doc.status, "Absent", "Attendance correctly saved");},
|
||||||
|
|
||||||
|
() => frappe.timeout(0.5),
|
||||||
|
() => cur_frm.set_value("status", "Present"),
|
||||||
|
() => {assert.equal(cur_frm.doc.status, "Present", "Attendance correctly saved");},
|
||||||
|
|
||||||
|
() => done()
|
||||||
|
]);
|
||||||
|
});
|
@ -109,7 +109,7 @@ schools.StudentsEditor = Class.extend({
|
|||||||
});
|
});
|
||||||
|
|
||||||
student_toolbar.find(".btn-mark-att")
|
student_toolbar.find(".btn-mark-att")
|
||||||
.html(__('Mark Attendence'))
|
.html(__('Mark Attendance'))
|
||||||
.on("click", function() {
|
.on("click", function() {
|
||||||
$(me.wrapper.find(".btn-mark-att")).attr("disabled", true);
|
$(me.wrapper.find(".btn-mark-att")).attr("disabled", true);
|
||||||
var studs = [];
|
var studs = [];
|
||||||
|
@ -0,0 +1,85 @@
|
|||||||
|
// Testing Attendance Module in Schools
|
||||||
|
QUnit.module('schools');
|
||||||
|
|
||||||
|
QUnit.test('Test: Student Attendace Tool', function(assert){
|
||||||
|
assert.expect(10);
|
||||||
|
let done = assert.async();
|
||||||
|
let i, count = 0;
|
||||||
|
|
||||||
|
frappe.run_serially([
|
||||||
|
() => frappe.timeout(0.2),
|
||||||
|
() => frappe.set_route('Form', 'Student Attendance Tool'),
|
||||||
|
() => frappe.timeout(0.5),
|
||||||
|
|
||||||
|
() => {
|
||||||
|
if(cur_frm.doc.based_on == 'Student Group' || cur_frm.doc.based_on == 'Course Schedule'){
|
||||||
|
cur_frm.doc.based_on = 'Student Group';
|
||||||
|
assert.equal(1, 1, 'Attendance basis correctly set');
|
||||||
|
cur_frm.set_value("group_based_on", 'Batch');
|
||||||
|
cur_frm.set_value("student_group", "test-batch-wise-group");
|
||||||
|
cur_frm.set_value("date", frappe.datetime.nowdate());
|
||||||
|
}
|
||||||
|
},
|
||||||
|
() => frappe.timeout(0.5),
|
||||||
|
() => {
|
||||||
|
assert.equal($('input.students-check').size(), 5, "Student list based on batch correctly fetched");
|
||||||
|
assert.equal(frappe.datetime.nowdate(), cur_frm.doc.date, 'Current date correctly set');
|
||||||
|
|
||||||
|
cur_frm.set_value("student_group", "test-batch-wise-group-2");
|
||||||
|
assert.equal($('input.students-check').size(), 5, "Student list based on batch 2 correctly fetched");
|
||||||
|
|
||||||
|
cur_frm.set_value("group_based_on", 'Course');
|
||||||
|
|
||||||
|
cur_frm.set_value("student_group", "test-course-wise-group");
|
||||||
|
assert.equal($('input.students-check').size(), 5, "Student list based on course correctly fetched");
|
||||||
|
|
||||||
|
cur_frm.set_value("student_group", "test-course-wise-group-2");
|
||||||
|
assert.equal($('input.students-check').size(), 5, "Student list based on course 2 correctly fetched");
|
||||||
|
},
|
||||||
|
|
||||||
|
() => frappe.timeout(1),
|
||||||
|
() => frappe.tests.click_button('Check all'), // Marking all Student as checked
|
||||||
|
() => {
|
||||||
|
for(i = 0; i < $('input.students-check').size(); i++){
|
||||||
|
if($('input.students-check')[i].checked == true)
|
||||||
|
count++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(count == $('input.students-check').size())
|
||||||
|
assert.equal($('input.students-check').size(), count, "All students marked checked");
|
||||||
|
},
|
||||||
|
|
||||||
|
() => frappe.timeout(1),
|
||||||
|
() => frappe.tests.click_button('Uncheck all'), // Marking all Student as unchecked
|
||||||
|
() => {
|
||||||
|
count = 0;
|
||||||
|
for(i = 0; i < $('input.students-check').size(); i++){
|
||||||
|
if(!($('input.students-check')[i].checked))
|
||||||
|
count++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(count == $('input.students-check').size())
|
||||||
|
assert.equal($('input.students-check').size(), count, "All students marked checked");
|
||||||
|
},
|
||||||
|
|
||||||
|
() => frappe.timeout(1),
|
||||||
|
() => frappe.tests.click_button('Check all'),
|
||||||
|
() => frappe.tests.click_button('Mark Attendance'),
|
||||||
|
() => frappe.timeout(1),
|
||||||
|
() => frappe.tests.click_button('Yes'),
|
||||||
|
() => frappe.timeout(1),
|
||||||
|
() => {
|
||||||
|
assert.equal($('.msgprint').text(), "Attendance has been marked successfully.", "Attendance successfully marked");
|
||||||
|
frappe.tests.click_button('Close');
|
||||||
|
},
|
||||||
|
|
||||||
|
() => frappe.timeout(1),
|
||||||
|
() => frappe.set_route('List', 'Student Attendance/List'),
|
||||||
|
() => frappe.timeout(1),
|
||||||
|
() => {
|
||||||
|
assert.equal(($('div.list-item').size() - 1), count, "Attendance list created");
|
||||||
|
},
|
||||||
|
|
||||||
|
() => done()
|
||||||
|
]);
|
||||||
|
});
|
@ -0,0 +1,69 @@
|
|||||||
|
// Testing Attendance Module in Schools
|
||||||
|
QUnit.module('schools');
|
||||||
|
|
||||||
|
QUnit.test('Test: Student Leave Application', function(assert){
|
||||||
|
assert.expect(4);
|
||||||
|
let done = assert.async();
|
||||||
|
let student_code;
|
||||||
|
let leave_code;
|
||||||
|
frappe.run_serially([
|
||||||
|
() => frappe.db.get_value('Student', {'student_email_id': 'test2@testmail.com'}, 'name'),
|
||||||
|
(student) => {student_code = student.message.name;}, // fetching student code from db
|
||||||
|
|
||||||
|
() => {
|
||||||
|
return frappe.tests.make('Student Leave Application', [
|
||||||
|
{student: student_code},
|
||||||
|
{from_date: '2017-08-02'},
|
||||||
|
{to_date: '2017-08-04'},
|
||||||
|
{mark_as_present: 0},
|
||||||
|
{reason: "Sick Leave."}
|
||||||
|
]);
|
||||||
|
},
|
||||||
|
() => frappe.tests.click_button('Submit'), // Submitting the leave application
|
||||||
|
() => frappe.timeout(0.7),
|
||||||
|
() => frappe.tests.click_button('Yes'),
|
||||||
|
() => frappe.timeout(0.7),
|
||||||
|
() => {
|
||||||
|
assert.equal(cur_frm.doc.docstatus, 1, "Submitted leave application");
|
||||||
|
leave_code = frappe.get_route()[2];
|
||||||
|
},
|
||||||
|
() => frappe.tests.click_button('Cancel'), // Cancelling the leave application
|
||||||
|
() => frappe.timeout(0.7),
|
||||||
|
() => frappe.tests.click_button('Yes'),
|
||||||
|
() => frappe.timeout(1),
|
||||||
|
() => {assert.equal(cur_frm.doc.docstatus, 2, "Cancelled leave application");},
|
||||||
|
() => frappe.tests.click_button('Amend'), // Amending the leave application
|
||||||
|
() => frappe.timeout(1),
|
||||||
|
() => {
|
||||||
|
cur_frm.doc.mark_as_present = 1;
|
||||||
|
cur_frm.save();
|
||||||
|
},
|
||||||
|
() => frappe.timeout(0.7),
|
||||||
|
() => frappe.tests.click_button('Submit'),
|
||||||
|
() => frappe.timeout(0.7),
|
||||||
|
() => frappe.tests.click_button('Yes'),
|
||||||
|
() => frappe.timeout(0.7),
|
||||||
|
() => {assert.equal(cur_frm.doc.amended_from, leave_code, "Amended successfully");},
|
||||||
|
|
||||||
|
() => frappe.timeout(0.5),
|
||||||
|
() => {
|
||||||
|
return frappe.tests.make('Student Leave Application', [
|
||||||
|
{student: student_code},
|
||||||
|
{from_date: '2017-08-07'},
|
||||||
|
{to_date: '2017-08-09'},
|
||||||
|
{mark_as_present: 0},
|
||||||
|
{reason: "Sick Leave."}
|
||||||
|
]);
|
||||||
|
},
|
||||||
|
() => frappe.tests.click_button('Submit'),
|
||||||
|
() => frappe.timeout(0.7),
|
||||||
|
() => frappe.tests.click_button('Yes'),
|
||||||
|
() => frappe.timeout(0.7),
|
||||||
|
() => {
|
||||||
|
assert.equal(cur_frm.doc.docstatus, 1, "Submitted leave application");
|
||||||
|
leave_code = frappe.get_route()[2];
|
||||||
|
},
|
||||||
|
|
||||||
|
() => done()
|
||||||
|
]);
|
||||||
|
});
|
@ -63,4 +63,7 @@ erpnext/schools/doctype/student_applicant/tests/test_student_applicant.js
|
|||||||
erpnext/schools/doctype/student_applicant/tests/test_student_applicant_options.js
|
erpnext/schools/doctype/student_applicant/tests/test_student_applicant_options.js
|
||||||
erpnext/schools/doctype/student_log/test_student_log.js
|
erpnext/schools/doctype/student_log/test_student_log.js
|
||||||
erpnext/schools/doctype/student_group/test_student_group.js
|
erpnext/schools/doctype/student_group/test_student_group.js
|
||||||
erpnext/schools/doctype/student_group_creation_tool/test_student_group_creation_tool.js
|
erpnext/schools/doctype/student_group_creation_tool/test_student_group_creation_tool.js
|
||||||
|
erpnext/schools/doctype/student_leave_application/test_student_leave_application.js
|
||||||
|
erpnext/schools/doctype/student_attendance_tool/test_student_attendance_tool.js
|
||||||
|
erpnext/schools/doctype/student_attendance/test_student_attendance.js
|
Loading…
x
Reference in New Issue
Block a user