From 877f8e2a23b568beb79a988bcca5db889abe4c70 Mon Sep 17 00:00:00 2001 From: Utkarsh Yadav Date: Tue, 25 Jul 2017 12:05:18 +0530 Subject: [PATCH] [UI Test] Kanban view (#3777) * added changes and one test for column * changes in tests for new test runner * codacy fixes --- .../ui/test_kanban/test_kanban_column.js | 31 ++++++++++++++++ .../ui/test_kanban/test_kanban_creation.js | 30 ++++++++++++++++ .../ui/test_kanban/test_kanban_filters.js | 27 ++++++++++++++ .../tests/ui/test_kanban/test_kanban_view.js | 26 ++++++++++++++ .../ui/test_module/test_module_option.js | 35 ------------------- frappe/tests/ui/tests.txt | 6 +++- 6 files changed, 119 insertions(+), 36 deletions(-) create mode 100644 frappe/tests/ui/test_kanban/test_kanban_column.js create mode 100644 frappe/tests/ui/test_kanban/test_kanban_creation.js create mode 100644 frappe/tests/ui/test_kanban/test_kanban_filters.js create mode 100644 frappe/tests/ui/test_kanban/test_kanban_view.js delete mode 100644 frappe/tests/ui/test_module/test_module_option.js diff --git a/frappe/tests/ui/test_kanban/test_kanban_column.js b/frappe/tests/ui/test_kanban/test_kanban_column.js new file mode 100644 index 0000000000..0c4593a8dd --- /dev/null +++ b/frappe/tests/ui/test_kanban/test_kanban_column.js @@ -0,0 +1,31 @@ +QUnit.module('views'); + +QUnit.test("Test: Setting column colour [Kanban view]", function(assert) { + assert.expect(3); + let done = assert.async(); + function get_column(name, colour) { + return ('.kanban-column:contains('+name+')>div>div>ul>li>div.'+colour); + } + + frappe.run_serially([ + () => frappe.set_route("List", "ToDo", "Kanban", "Kanban test"), + () => frappe.timeout(1), + () => assert.deepEqual(["List", "ToDo", "Kanban", "Kanban test"], frappe.get_route(), + "Kanban view opened successfully."), + () => { + // set colour for columns + $(get_column('High', "red")).click(); + $(get_column('Medium', "green")).click(); + $(get_column('Low', "yellow")).click(); + }, + () => frappe.timeout(1), + () => { + //check if different colours are set + assert.equal($('.red > span')[0].innerText, 'High', + "Colour is set for kanban column."); + assert.equal($('.green > span')[0].innerText, 'Medium', + "Different colour is set for other column."); + }, + () => done() + ]); +}); \ No newline at end of file diff --git a/frappe/tests/ui/test_kanban/test_kanban_creation.js b/frappe/tests/ui/test_kanban/test_kanban_creation.js new file mode 100644 index 0000000000..2ef7127f1f --- /dev/null +++ b/frappe/tests/ui/test_kanban/test_kanban_creation.js @@ -0,0 +1,30 @@ +QUnit.module('views'); + +QUnit.test("Test: Creation [Kanban view]", function(assert) { + assert.expect(2); + let done = assert.async(); + + frappe.run_serially([ + () => frappe.set_route("List", "ToDo", "List"), + // click kanban in side bar + () => frappe.click_link('Kanban'), + () => frappe.click_link('New Kanban Board'), + () => frappe.timeout(0.5), + // create new kanban + () => { + assert.equal(cur_dialog.title, 'New Kanban Board', + "Dialog for new kanban opened."); + cur_dialog.set_value('board_name', 'Kanban test'); + cur_dialog.set_value('field_name', 'Priority'); + }, + () => frappe.timeout(0.5), + () => cur_dialog.get_primary_btn().click(), + () => frappe.timeout(1), + () => frappe.set_route("List", "Kanban Board", "List"), + () => frappe.timeout(0.5), + // check in kanban list if new kanban is created + () => assert.equal(cur_list.data[0].name, 'Kanban test', + "Added kanban is visible in kanban list."), + () => done() + ]); +}); \ No newline at end of file diff --git a/frappe/tests/ui/test_kanban/test_kanban_filters.js b/frappe/tests/ui/test_kanban/test_kanban_filters.js new file mode 100644 index 0000000000..b4d4ca1222 --- /dev/null +++ b/frappe/tests/ui/test_kanban/test_kanban_filters.js @@ -0,0 +1,27 @@ +QUnit.module('views'); + +QUnit.test("Test: Filters [Kanban view]", function(assert) { + assert.expect(3); + let done = assert.async(); + + frappe.run_serially([ + () => frappe.set_route("List", "ToDo", "Kanban", "Kanban test"), + () => frappe.timeout(1), + () => { + assert.deepEqual(["List", "ToDo", "Kanban", "Kanban test"], frappe.get_route(), + "Kanban view opened successfully."); + // set filter values + return frappe.set_control('priority', 'Low'); + }, + () => frappe.timeout(1), + () => cur_list.page.btn_secondary.click(), + () => frappe.timeout(1), + () => { + assert.equal(cur_list.data[0].priority, 'Low', + 'visible element has low priority'); + let non_low_items = cur_list.data.filter(d => d.priority != 'Low'); + assert.equal(non_low_items.length, 0, 'No item without low priority'); + }, + () => done() + ]); +}); \ No newline at end of file diff --git a/frappe/tests/ui/test_kanban/test_kanban_view.js b/frappe/tests/ui/test_kanban/test_kanban_view.js new file mode 100644 index 0000000000..9cf7787d2b --- /dev/null +++ b/frappe/tests/ui/test_kanban/test_kanban_view.js @@ -0,0 +1,26 @@ +QUnit.module('views'); + +QUnit.test("Test: Kanban view", function(assert) { + assert.expect(3); + let done = assert.async(); + let total_elements; + + frappe.run_serially([ + () => frappe.set_route("List", "ToDo", "List"), + // calculate number of element in list + () => frappe.timeout(1), + () => total_elements = cur_list.data.length, + () => frappe.set_route("List", "ToDo", "Kanban", "Kanban test"), + () => frappe.timeout(1), + () => { + assert.equal('Kanban', cur_list.current_view, + "Current view is kanban."); + assert.equal("Kanban test", cur_list.list_renderer.page_title, + "Kanban view opened successfully."); + // check if all elements are visible in kanban view + assert.equal(total_elements, cur_list.data.length, + "All elements are visible in kanban view."); + }, + () => done() + ]); +}); \ No newline at end of file diff --git a/frappe/tests/ui/test_module/test_module_option.js b/frappe/tests/ui/test_module/test_module_option.js deleted file mode 100644 index 4f6910309a..0000000000 --- a/frappe/tests/ui/test_module/test_module_option.js +++ /dev/null @@ -1,35 +0,0 @@ -QUnit.module('views'); - -QUnit.test("Test option click [Module view]", function(assert) { - assert.expect(4); - let done = assert.async(); - - frappe.run_serially([ - - //click Document Share Report in Permissions section [Report] - () => frappe.set_route("modules", "Setup"), - () => frappe.timeout(0.5), - () => frappe.tests.click_and_wait('a.small:contains("Document Share Report")', 0), - () => assert.deepEqual(frappe.get_route(), ["Report", "DocShare", "Document Share Report"], "First click test."), - - //click Print Setting in Printing section [Form] - () => frappe.set_route("modules", "Setup"), - () => frappe.timeout(0.5), - () => frappe.tests.click_and_wait('a.small:contains("Print Setting")', 0), - () => assert.deepEqual(frappe.get_route(), ["Form", "Print Settings"], "Second click test."), - - //click Workflow Action in Workflow section [List] - () => frappe.set_route("modules", "Setup"), - () => frappe.timeout(0.5), - () => frappe.tests.click_and_wait('a.small:contains(" Workflow Action ")', 0), - () => assert.deepEqual(frappe.get_route(), ["List", "Workflow Action", "List"], "Third click test."), - - //click Application Installer in Applications section - () => frappe.set_route("modules", "Setup"), - () => frappe.timeout(0.5), - () => frappe.tests.click_and_wait('a.small:contains("Application Installer")', 0), - () => assert.deepEqual(frappe.get_route(), ["applications"], "Fourth click test."), - - () => done() - ]); -}); \ No newline at end of file diff --git a/frappe/tests/ui/tests.txt b/frappe/tests/ui/tests.txt index de7d34fddb..ce0c91c77e 100644 --- a/frappe/tests/ui/tests.txt +++ b/frappe/tests/ui/tests.txt @@ -2,4 +2,8 @@ frappe/tests/ui/test_number_format.js frappe/tests/ui/test_list/test_list_filter.js frappe/tests/ui/test_list/test_list_paging.js frappe/tests/ui/test_module_view.js -frappe/tests/ui/test_calendar_view.js \ No newline at end of file +frappe/tests/ui/test_calendar_view.js +frappe/tests/ui/test_kanban/test_kanban_creation.js +frappe/tests/ui/test_kanban/test_kanban_view.js +frappe/tests/ui/test_kanban/test_kanban_filters.js +frappe/tests/ui/test_kanban/test_kanban_column.js \ No newline at end of file