diff --git a/tests/02-Admin-PersonnelManagement/JWS_PM_001_CreatePersonnel.spec.ts b/tests/02-Admin-PersonnelManagement/JWS_PM_001_CreatePersonnel.spec.ts new file mode 100644 index 00000000..152ab264 --- /dev/null +++ b/tests/02-Admin-PersonnelManagement/JWS_PM_001_CreatePersonnel.spec.ts @@ -0,0 +1,334 @@ +import { test, expect, Page } from '@playwright/test'; +import { strictEqual } from 'assert'; + +let page: Page; + +test.beforeAll(async ({ browser }) => { + page = await browser.newPage(); +}); + +test.afterAll(async () => { + if (page !== undefined) { + await page.close(); + } +}); + +test('Login', async () => { + // Login + await page.goto('http://192.168.1.90:20001/'); + await expect(page).toHaveTitle(/^Sign in to /); + await page.fill("input[name='username']", 'admin'); + await page.fill("input[name='password']", '1234'); + await page.click('id=kc-login'); + await page.waitForTimeout(2000); + // await page.click('id=acceptBtn'); +}); + +test('Create Personnel พนักงาน ชาย', async () => { + await page.click('id=menu-icon-personnel-management'); + for (let i = 1; i < 5; i++) { + await page.click('id=btn-add'); + await page.click('id=btn-add-personne'); + await page.fill('id=input-username', `user${i + 1}`); + // await page.click('id=select-user-type'); + // await page.click("//span[text()='พนักงาน']"); + await page.click('id=select-user-role'); + await page.click("//span[text()='System']"); + await page.click("//div[@role='option']"); + await page.fill('id=input-first-name', `ทดสอบ${i + 1}`); + await page.fill('id=input-last-name', `ทดสอบ${i + 1}`); + await page.fill('id=input-first-name-en', `Firstname${i + 1}`); + await page.fill('id=input-last-name-en', `Lastname${i + 1}`); + await page.click('id=select-gender'); + await page.click("//span[text()='ชาย']"); + await page.click('id=input-birth-date'); + await page.click("(//button[@class='dp__btn dp__month_year_select'])[2]"); + await page.click("//div[text()='2021']"); + await page.click("//div[text()='10']"); + await page.fill('id=input-address', `20/0${i + 1}`); + await page.click('id=select-province'); + await page.click("//span[text()='เชียงใหม่']"); + await page.click('id=select-district'); + await page.click("//span[text()='เมือง']"); + await page.click('id=select-sub-district'); + await page.click("//span[text()='ช้างเผือก']"); + await page.fill('id=input-address-en', `20/0${i + 1}`); + await page.fill('id=input-regis-no', `282228222242${i + 1}`); + await page.click('id=input-start-date'); + await page.click(`//div[text()='1${i + 1}']`); + await page.click('id=input-retire-date'); + await page.click(`//div[text()='2${i + 1}']`); + await page.click('id=submitBtn'); + await page.click('id=btn-ok-dialog'); + } + await page.waitForTimeout(4000); +}); + +test('Create Personnel พนักงาน หญิง', async () => { + for (let i = 1; i < 10; i++) { + await page.click('id=btn-add'); + await page.click('id=btn-add-personne'); + await page.fill('id=input-username', `user${i + 5}`); + // await page.click('id=select-user-type'); + // await page.click("//span[text()='พนักงาน']"); + await page.click('id=select-user-role'); + await page.click("//span[text()='System']"); + await page.click("//div[@role='option']"); + await page.fill('id=input-first-name', `ทดสอบ${i + 5}`); + await page.fill('id=input-last-name', `ทดสอบ${i + 5}`); + await page.fill('id=input-first-name-en', `Firstname${i + 5}`); + await page.fill('id=input-last-name-en', `Lastname${i + 5}`); + await page.click('id=select-gender'); + await page.click("//span[text()='หญิง']"); + await page.click('id=input-birth-date'); + await page.click("(//button[@class='dp__btn dp__month_year_select'])[2]"); + await page.click("//div[text()='2021']"); + await page.click("//div[text()='10']"); + await page.fill('id=input-address', `20/0${i + 5}`); + await page.click('id=select-province'); + await page.click("//span[text()='เชียงใหม่']"); + await page.click('id=select-district'); + await page.click("//span[text()='เมือง']"); + await page.click('id=select-sub-district'); + await page.click("//span[text()='ช้างเผือก']"); + await page.fill('id=input-address-en', `20/0${i + 5}`); + await page.fill('id=input-regis-no', `282228222242${i + 5}`); + await page.click('id=input-start-date'); + await page.click(`//div[text()='1${i + 5}']`); + await page.click('id=input-retire-date'); + await page.click(`//div[text()='2${i + 5}']`); + await page.click('id=submitBtn'); + await page.click('id=btn-ok-dialog'); + } + await page.waitForTimeout(4000); +}); + +test('Create Personnel พนักงานส่งเอกสาร ชาย', async () => { + for (let i = 1; i < 5; i++) { + await page.click('id=btn-add'); + await page.click('id=btn-add-personne'); + await page.fill('id=input-username', `user0${i + 1}`); + await page.click('id=select-user-type'); + await page.click("//span[text()='พนักงานส่งเอกสาร']"); + await page.click('id=select-user-role'); + await page.click("//span[text()='System']"); + await page.click("//div[@role='option']"); + await page.fill('id=input-first-name', `ทดสอบ${i + 1}`); + await page.fill('id=input-last-name', `ทดสอบ${i + 1}`); + await page.fill('id=input-first-name-en', `Firstname${i + 1}`); + await page.fill('id=input-last-name-en', `Lastname${i + 1}`); + await page.click('id=select-gender'); + await page.click("//span[text()='ชาย']"); + await page.click('id=input-birth-date'); + await page.click("(//button[@class='dp__btn dp__month_year_select'])[2]"); + await page.click("//div[text()='2021']"); + await page.click("//div[text()='10']"); + await page.fill('id=input-address', `20/0${i + 1}`); + await page.click('id=select-province'); + await page.click("//span[text()='เชียงใหม่']"); + await page.click('id=select-district'); + await page.click("//span[text()='เมือง']"); + await page.click('id=select-sub-district'); + await page.click("//span[text()='ช้างเผือก']"); + await page.fill('id=input-address-en', `20/0${i + 1}`); + await page.fill('id=input-regis-no', `282228222222${i + 1}`); + await page.click('id=input-start-date'); + await page.click(`//div[text()='1${i + 1}']`); + await page.click('id=input-retire-date'); + await page.click(`//div[text()='2${i + 1}']`); + await page.click('id=submitBtn'); + await page.click('id=btn-ok-dialog'); + } + await page.waitForTimeout(4000); +}); + +test('Create Personnel พนักงานส่งเอกสาร หญิง', async () => { + for (let i = 1; i < 10; i++) { + await page.click('id=btn-add'); + await page.click('id=btn-add-personne'); + await page.fill('id=input-username', `user0${i + 5}`); + await page.click('id=select-user-type'); + await page.click("//span[text()='พนักงานส่งเอกสาร']"); + await page.click('id=select-user-role'); + await page.click("//span[text()='System']"); + await page.click("//div[@role='option']"); + await page.fill('id=input-first-name', `ทดสอบ${i + 5}`); + await page.fill('id=input-last-name', `ทดสอบ${i + 5}`); + await page.fill('id=input-first-name-en', `Firstname${i + 5}`); + await page.fill('id=input-last-name-en', `Lastname${i + 5}`); + await page.click('id=select-gender'); + await page.click("//span[text()='หญิง']"); + await page.click('id=input-birth-date'); + await page.click("(//button[@class='dp__btn dp__month_year_select'])[2]"); + await page.click("//div[text()='2021']"); + await page.click("//div[text()='10']"); + await page.fill('id=input-address', `20/0${i + 5}`); + await page.click('id=select-province'); + await page.click("//span[text()='เชียงใหม่']"); + await page.click('id=select-district'); + await page.click("//span[text()='เมือง']"); + await page.click('id=select-sub-district'); + await page.click("//span[text()='ช้างเผือก']"); + await page.fill('id=input-address-en', `20/0${i + 5}`); + await page.fill('id=input-regis-no', `282228222224${i + 5}`); + await page.click('id=input-start-date'); + await page.click(`//div[text()='1${i + 5}']`); + await page.click('id=input-retire-date'); + await page.click(`//div[text()='2${i + 5}']`); + await page.click('id=submitBtn'); + await page.click('id=btn-ok-dialog'); + } + await page.waitForTimeout(4000); +}); + +test('Create Personnel ตัวแทน ชาย', async () => { + for (let i = 1; i < 5; i++) { + await page.click('id=btn-add'); + await page.click('id=btn-add-personne'); + await page.fill('id=input-username', `user00${i + 1}`); + await page.click('id=select-user-type'); + await page.click("//span[text()='ตัวแทน']"); + await page.click('id=select-user-role'); + await page.click("//span[text()='System']"); + await page.click("//div[@role='option']"); + await page.fill('id=input-first-name', `ทดสอบ${i + 1}`); + await page.fill('id=input-last-name', `ทดสอบ${i + 1}`); + await page.fill('id=input-first-name-en', `Firstname${i + 1}`); + await page.fill('id=input-last-name-en', `Lastname${i + 1}`); + await page.click('id=select-gender'); + await page.click("//span[text()='ชาย']"); + await page.click('id=input-birth-date'); + await page.click("(//button[@class='dp__btn dp__month_year_select'])[2]"); + await page.click("//div[text()='2021']"); + await page.click("//div[text()='10']"); + await page.fill('id=input-address', `20/0${i + 1}`); + await page.click('id=select-province'); + await page.click("//span[text()='เชียงใหม่']"); + await page.click('id=select-district'); + await page.click("//span[text()='เมือง']"); + await page.click('id=select-sub-district'); + await page.click("//span[text()='ช้างเผือก']"); + await page.fill('id=input-address-en', `20/0${i + 1}`); + await page.click('id=submitBtn'); + await page.click('id=btn-ok-dialog'); + } + await page.waitForTimeout(4000); +}); + +test('Create Personnel ตัวแทน หญิง', async () => { + for (let i = 1; i < 10; i++) { + await page.click('id=btn-add'); + await page.click('id=btn-add-personne'); + await page.fill('id=input-username', `user00${i + 5}`); + await page.click('id=select-user-type'); + await page.click("//span[text()='ตัวแทน']"); + await page.click('id=select-user-role'); + await page.click("//span[text()='System']"); + await page.click("//div[@role='option']"); + await page.fill('id=input-first-name', `ทดสอบ${i + 5}`); + await page.fill('id=input-last-name', `ทดสอบ${i + 5}`); + await page.fill('id=input-first-name-en', `Firstname${i + 5}`); + await page.fill('id=input-last-name-en', `Lastname${i + 5}`); + await page.click('id=select-gender'); + await page.click("//span[text()='หญิง']"); + await page.click('id=input-birth-date'); + await page.click("(//button[@class='dp__btn dp__month_year_select'])[2]"); + await page.click("//div[text()='2021']"); + await page.click("//div[text()='10']"); + await page.fill('id=input-address', `20/0${i + 5}`); + await page.click('id=select-province'); + await page.click("//span[text()='เชียงใหม่']"); + await page.click('id=select-district'); + await page.click("//span[text()='เมือง']"); + await page.click('id=select-sub-district'); + await page.click("//span[text()='ช้างเผือก']"); + await page.fill('id=input-address-en', `20/0${i + 5}`); + await page.click('id=submitBtn'); + await page.click('id=btn-ok-dialog'); + } + await page.waitForTimeout(4000); +}); + +test('Create Personnel เอเจนซี่ ชาย', async () => { + for (let i = 1; i < 5; i++) { + await page.click('id=btn-add'); + await page.click('id=btn-add-personne'); + await page.fill('id=input-username', `user000${i + 1}`); + await page.click('id=select-user-type'); + await page.click("//span[text()='เอเจนซี่']"); + await page.click('id=select-user-role'); + await page.click("//span[text()='System']"); + await page.click("//div[@role='option']"); + await page.fill('id=input-first-name', `ทดสอบ${i + 1}`); + await page.fill('id=input-last-name', `ทดสอบ${i + 1}`); + await page.fill('id=input-first-name-en', `Firstname${i + 1}`); + await page.fill('id=input-last-name-en', `Lastname${i + 1}`); + await page.click('id=select-gender'); + await page.click("//span[text()='ชาย']"); + await page.click('id=input-birth-date'); + await page.click("(//button[@class='dp__btn dp__month_year_select'])[2]"); + await page.click("//div[text()='2021']"); + await page.click("//div[text()='10']"); + await page.fill('id=input-address', `20/0${i + 1}`); + await page.click('id=select-province'); + await page.click("//span[text()='เชียงใหม่']"); + await page.click('id=select-district'); + await page.click("//span[text()='เมือง']"); + await page.click('id=select-sub-district'); + await page.click("//span[text()='ช้างเผือก']"); + await page.fill('id=input-address-en', `20/0${i + 1}`); + await page.click('id=input-source-nationality'); + await page.click("(//span[text()='ไทย'])[2]"); + await page.click('id=input-import-nationality'); + await page.click("(//span[text()='ไทย'])[3]"); + await page.click('id=select-trainig-place'); + await page.click("//span[text()='สถานที่อบรมแรงงานเมียนมา-แม่สอด จ.ตาก']"); + await page.fill('id=input-checkpoint', 'แม่สอด'); + await page.fill('id=input-checkpoint-en', 'Maesod'); + await page.click('id=submitBtn'); + await page.click('id=btn-ok-dialog'); + } + await page.waitForTimeout(4000); +}); + +test('Create Personnel เอเจนซี่ หญิง', async () => { + for (let i = 1; i < 10; i++) { + await page.click('id=btn-add'); + await page.click('id=btn-add-personne'); + await page.fill('id=input-username', `user000${i + 5}`); + await page.click('id=select-user-type'); + await page.click("//span[text()='เอเจนซี่']"); + await page.click('id=select-user-role'); + await page.click("//span[text()='System']"); + await page.click("//div[@role='option']"); + await page.fill('id=input-first-name', `ทดสอบ${i + 5}`); + await page.fill('id=input-last-name', `ทดสอบ${i + 5}`); + await page.fill('id=input-first-name-en', `Firstname${i + 5}`); + await page.fill('id=input-last-name-en', `Lastname${i + 5}`); + await page.click('id=select-gender'); + await page.click("//span[text()='หญิง']"); + await page.click('id=input-birth-date'); + await page.click("(//button[@class='dp__btn dp__month_year_select'])[2]"); + await page.click("//div[text()='2021']"); + await page.click("//div[text()='10']"); + await page.fill('id=input-address', `20/0${i + 5}`); + await page.click('id=select-province'); + await page.click("//span[text()='เชียงใหม่']"); + await page.click('id=select-district'); + await page.click("//span[text()='เมือง']"); + await page.click('id=select-sub-district'); + await page.click("//span[text()='ช้างเผือก']"); + await page.fill('id=input-address-en', `20/0${i + 5}`); + await page.click('id=input-source-nationality'); + await page.click("(//span[text()='ไทย'])[2]"); + await page.click('id=input-import-nationality'); + await page.click("(//span[text()='ไทย'])[3]"); + await page.click('id=select-trainig-place'); + await page.click("//span[text()='สถานที่อบรมแรงงานเมียนมา-แม่สอด จ.ตาก']"); + await page.fill('id=input-checkpoint', 'แม่สอด'); + await page.fill('id=input-checkpoint-en', 'Maesod'); + await page.click('id=submitBtn'); + await page.click('id=btn-ok-dialog'); + } + await page.waitForTimeout(4000); +}); diff --git a/tests/02-Admin-PersonnelManagement/JWS_PM_002_ViewDetail.spec.ts b/tests/02-Admin-PersonnelManagement/JWS_PM_002_ViewDetail.spec.ts new file mode 100644 index 00000000..7ca45cf6 --- /dev/null +++ b/tests/02-Admin-PersonnelManagement/JWS_PM_002_ViewDetail.spec.ts @@ -0,0 +1,32 @@ +import { test, expect, Page } from '@playwright/test'; +import { strictEqual } from 'assert'; + +let page: Page; + +test.beforeAll(async ({ browser }) => { + page = await browser.newPage(); +}); + +test.afterAll(async () => { + if (page !== undefined) { + await page.close(); + } +}); + +test('Login', async () => { + // Login + await page.goto('http://192.168.1.90:20001/'); + await expect(page).toHaveTitle(/^Sign in to /); + await page.fill("input[name='username']", 'admin'); + await page.fill("input[name='password']", '1234'); + await page.click('id=kc-login'); + await page.waitForTimeout(2000); + // await page.click('id=acceptBtn'); +}); + +test('View Deatil Personnel', async () => { + await page.click('id=menu-icon-personnel-management'); + await page.click("(//div[@class='full-width text-right']//button)[1]"); + await page.click("(//div[@class='q-focus-helper']/following-sibling::i)[1]"); + await page.waitForTimeout(4000); +}); diff --git a/tests/02-Admin-PersonnelManagement/JWS_PM_003_EditPersonnel.spec.ts b/tests/02-Admin-PersonnelManagement/JWS_PM_003_EditPersonnel.spec.ts new file mode 100644 index 00000000..69375f92 --- /dev/null +++ b/tests/02-Admin-PersonnelManagement/JWS_PM_003_EditPersonnel.spec.ts @@ -0,0 +1,32 @@ +import { test, expect, Page } from '@playwright/test'; +import { strictEqual } from 'assert'; + +let page: Page; + +test.beforeAll(async ({ browser }) => { + page = await browser.newPage(); +}); + +test.afterAll(async () => { + if (page !== undefined) { + await page.close(); + } +}); + +test('Login', async () => { + // Login + await page.goto('http://192.168.1.90:20001/'); + await expect(page).toHaveTitle(/^Sign in to /); + await page.fill("input[name='username']", 'admin'); + await page.fill("input[name='password']", '1234'); + await page.click('id=kc-login'); + await page.waitForTimeout(2000); + // await page.click('id=acceptBtn'); +}); + +test('Edit Personnel', async () => { + await page.click('id=menu-icon-personnel-management'); + await page.click("(//div[@class='full-width text-right']//button)[1]"); + await page.click("(//div[@class='q-focus-helper']/following-sibling::i)[2]"); + await page.waitForTimeout(2000); +}); diff --git a/tests/02-Admin-PersonnelManagement/JWS_PM_004_StatusPersonnel.spec.ts b/tests/02-Admin-PersonnelManagement/JWS_PM_004_StatusPersonnel.spec.ts new file mode 100644 index 00000000..3bd61959 --- /dev/null +++ b/tests/02-Admin-PersonnelManagement/JWS_PM_004_StatusPersonnel.spec.ts @@ -0,0 +1,39 @@ +import { test, expect, Page } from '@playwright/test'; +import { strictEqual } from 'assert'; + +let page: Page; + +test.beforeAll(async ({ browser }) => { + page = await browser.newPage(); +}); + +test.afterAll(async () => { + if (page !== undefined) { + await page.close(); + } +}); + +test('Login', async () => { + // Login + await page.goto('http://192.168.1.90:20001/'); + await expect(page).toHaveTitle(/^Sign in to /); + await page.fill("input[name='username']", 'admin'); + await page.fill("input[name='password']", '1234'); + await page.click('id=kc-login'); + await page.waitForTimeout(2000); + // await page.click('id=acceptBtn'); +}); + +test('Status Close Personnel', async () => { + await page.click('id=menu-icon-personnel-management'); + await page.click("(//div[@class='full-width text-right']//button)[1]"); + await page.click("//div[contains(@class,'q-toggle__thumb absolute')]"); + await page.keyboard.press('Escape'); + await page.waitForTimeout(2000); +}); + +test('Status Open Personnel', async () => { + await page.click("(//div[@class='full-width text-right']//button)[1]"); + await page.click("//div[contains(@class,'q-toggle__thumb absolute')]"); + await page.waitForTimeout(2000); +}); diff --git a/tests/02-Admin-PersonnelManagement/JWS_PM_005_SearchPersonnel.spec.ts b/tests/02-Admin-PersonnelManagement/JWS_PM_005_SearchPersonnel.spec.ts new file mode 100644 index 00000000..9072ef80 --- /dev/null +++ b/tests/02-Admin-PersonnelManagement/JWS_PM_005_SearchPersonnel.spec.ts @@ -0,0 +1,41 @@ +import { test, expect, Page } from '@playwright/test'; +import { strictEqual } from 'assert'; + +let page: Page; + +test.beforeAll(async ({ browser }) => { + page = await browser.newPage(); +}); + +test.afterAll(async () => { + if (page !== undefined) { + await page.close(); + } +}); + +test('Login', async () => { + // Login + await page.goto('http://192.168.1.90:20001/'); + await expect(page).toHaveTitle(/^Sign in to /); + await page.fill("input[name='username']", 'admin'); + await page.fill("input[name='password']", '1234'); + await page.click('id=kc-login'); + await page.waitForTimeout(2000); + // await page.click('id=acceptBtn'); +}); + +test('Search Personnel', async () => { + await page.click('id=menu-icon-personnel-management'); + await page.fill('id=input-search', 'ทดสอบ'); + await page.waitForTimeout(2000); + await page.fill('id=input-search', 'ทด'); + await page.waitForTimeout(2000); + await page.fill('id=input-search', '1'); + await page.waitForTimeout(2000); + await page.fill('id=input-search', 'พนักงาน'); + await page.waitForTimeout(2000); + await page.fill('id=input-search', 'พนัก '); + await page.waitForTimeout(2000); + await page.fill('id=input-search', '1000006'); + await page.waitForTimeout(2000); +}); diff --git a/tests/02-Admin-PersonnelManagement/JWS_PM_006_FilterStatusPersonnel.spec.ts b/tests/02-Admin-PersonnelManagement/JWS_PM_006_FilterStatusPersonnel.spec.ts new file mode 100644 index 00000000..4bbe1f67 --- /dev/null +++ b/tests/02-Admin-PersonnelManagement/JWS_PM_006_FilterStatusPersonnel.spec.ts @@ -0,0 +1,44 @@ +import { test, expect, Page } from '@playwright/test'; +import { strictEqual } from 'assert'; + +let page: Page; + +test.beforeAll(async ({ browser }) => { + page = await browser.newPage(); +}); + +test.afterAll(async () => { + if (page !== undefined) { + await page.close(); + } +}); + +test('Login', async () => { + // Login + await page.goto('http://192.168.1.90:20001/'); + await expect(page).toHaveTitle(/^Sign in to /); + await page.fill("input[name='username']", 'admin'); + await page.fill("input[name='password']", '1234'); + await page.click('id=kc-login'); + await page.waitForTimeout(2000); + // await page.click('id=acceptBtn'); +}); + +test('Select Filter Status Active Personnel', async () => { + await page.click('id=menu-icon-personnel-management'); + await page.click('id=btn-filter'); + await page.click('id=btn-filter-active'); + await page.waitForTimeout(2000); +}); + +test('Select Filter Status InActive Personnel', async () => { + await page.click('id=btn-filter'); + await page.click('id=btn-filter-inactive'); + await page.waitForTimeout(2000); +}); + +test('Select Filter Status All Personnel', async () => { + await page.click('id=btn-filter'); + await page.click('id=btn-filter-all'); + await page.waitForTimeout(2000); +});