import { test, expect, Page } from '@playwright/test'; import { fakerEN, fakerTH } from '@faker-js/faker'; let page: Page; let isLoginSuccessful = false; test.beforeAll(async ({ browser }) => { page = await browser.newPage(); }); test.afterAll(async () => { if (page !== undefined) { await page.close(); } }); async function login(page: Page) { try { // Login await page.goto('/'); 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'); // ถ้าทั้งหมดสำเร็จ isLoginSuccessful = true; console.log('ระบบทำการ Login สำเร็จ'); } catch (error) { console.error('เกิดข้อผิดพลาดในการ Login'); isLoginSuccessful = false; } } test('Login', async () => { await login(page); }); test('TC_2_4_001', async () => { if (!isLoginSuccessful) { await login(page); } try { // เข้าสู่เมนูลูกค้า await page.click('id=menu.manage'); await page.waitForSelector('id=sub-menu-customer'); await page.click('id=sub-menu-customer'); } catch (error) { console.error('เกิดข้อผิดพลาดในการทดสอบ', error); isLoginSuccessful = false; throw error; } await page.waitForTimeout(2000); console.log('ระบบแสดงหน้าจัดการลูกค้า'); }); test('TC_2_4_002', async () => { if (!isLoginSuccessful) { await login(page); } try { // เข้าสู่เมนูลูกค้า await page.click('id=menu.manage'); await page.waitForSelector('id=sub-menu-customer'); await page.click('id=sub-menu-customer'); // การเพิ่มนายจ้าง await page.waitForSelector('id=btn-add'); await page.click('id=btn-add'); const showAddNaturalPerson = page.locator('id=add-customer-natural-person'); const showAddLegalEntry = page.locator('id=add-customer-legal-entity'); await expect(showAddNaturalPerson).toBeVisible(); await expect(showAddLegalEntry).toBeVisible(); } catch (error) { console.error('เกิดข้อผิดพลาดในการทดสอบ', error); isLoginSuccessful = false; throw error; } await page.waitForTimeout(2000); console.log( 'ระบบแสดงเมนูย่อยเพื่อเพิ่มนายจ้างโดยจะแสดงเพิ่มบุคคธรรมดา,เพิ่มนิติบุคคล', ); }); test('TC_2_4_003', async () => { if (!isLoginSuccessful) { await login(page); } try { // เข้าสู่เมนูลูกค้า await page.click('id=menu.manage'); await page.waitForSelector('id=sub-menu-customer'); await page.click('id=sub-menu-customer'); // การเพิ่มนายจ้างนิติบุคคล await page.waitForTimeout(2000); await page.click('id=btn-add'); await page.waitForSelector('id=add-customer-legal-entity'); await page.click('id=add-customer-legal-entity'); await page.waitForSelector('.dialog-header-container', { state: 'visible', }); await expect(page.locator('.dialog-header-container')).toBeVisible; } catch (error) { console.error('เกิดข้อผิดพลาดในการทดสอบ', error); isLoginSuccessful = false; throw error; } await page.waitForTimeout(2000); console.log('ระบบแสดงหน้าเพิ่มนายจ้างนิติบุคคล'); }); test('TC_2_4_004', async () => { if (!isLoginSuccessful) { await login(page); } try { // เข้าสู่เมนูลูกค้า await page.click('id=menu.manage'); await page.waitForSelector('id=sub-menu-customer'); await page.click('id=sub-menu-customer'); // การเพิ่มนายจ้างนิติบุคคล await page.waitForTimeout(2000); await page.click('id=btn-add'); await page.waitForSelector('id=add-customer-legal-entity'); await page.click('id=add-customer-legal-entity'); // ส่วนเกี่ยวกับ await page.fill( 'id=input-register-name', 'บริษัท เอเชียเทค ซิสเต็มส์ จำกัด ', ); await page.fill('id=input-register-name-en', 'AsiaTech Systems Co., Ltd.'); await page.fill('id=input-legal-person-no', 'อนุชา ศรีสวัสดิ์'); await page.fill('id=input-legal-person-code', '2022822642228'); // จดทะเบียนเมื่อ await page.click("(//input[@id='form-input-register-date'])[1]"); await page.click("(//button[@class='dp__btn dp__month_year_select'])[2]"); await page.click("//div[text()='2020']"); await page.click("(//button[@class='dp__btn dp__month_year_select'])[1]"); await page.click("//div[text()='ก.ย.']"); await page.click("//div[@id='2020-09-18']/div[1]"); await page.fill('id=input-authorized-capital', '10000000'); await page.fill('id=input-telephone-no', '022202002'); // ส่วนข้อมูลธุรกิจ await page.click("(//div[@class='q-tab__label'])[2]"); await page.click('id=form-select-business-type'); await page.waitForSelector('id=form-select-business-type_3'); await page.click('id=form-select-business-type_3'); await page.click('id=form-select-job-position'); await page.waitForSelector('id=form-select-job-position_0'); await page.click('id=form-select-job-position_0'); await page.fill('id=form-input-job-description', 'รายละเอียดงาน'); await page.fill( "(//input[@id='form-input-pay-rate'])[1]", 'วันจ่ายเงินเดือน', ); await page.fill("(//input[@id='form-input-pay-rate'])[2]", 'Pay day'); await page.fill("(//input[@id='form-input-pay-rate'])[3]", '2000'); // ส่วนผู้มีอำนาจลงนาม await page.click("(//div[@class='q-tab__label'])[3]"); await page.fill( "(//input[@id='form-input-contact-name'])[1]", 'อนุชา ศรีสวัสดิ์', ); await page.fill( "(//input[@id='form-input-contact-name'])[2]", 'Anucha Srisawat', ); // ส่วนที่อยู่นายจ้าง await page.click("(//div[@class='q-tab__label'])[4]"); await page.fill("(//input[@id='form-input-address'])[1]", '20228226242'); await page.fill( 'id=form-input-address-no', '1234 อาคารซิตี้ทาวเวอร์ ชั้น 12', ); await page.fill("(//input[@id='form-input-street'])[1]", 'สาทรใต้'); await page.click('id=form-select-province'); await page.waitForSelector('id=form-select-province_1'); await page.click('id=form-select-province_1'); await page.click('id=form-select-district'); await page.waitForSelector('id=form-select-district_11'); await page.click('id=form-select-district_11'); await page.click('id=form-select-sub-district'); await page.waitForSelector('id=form-select-sub-district_1'); await page.click('id=form-select-sub-district_1'); await page.fill( 'id=form-input-address-en', '1234 City Tower Building, 12th Floor', ); await page.fill("(//input[@id='form-input-street'])[2]", 'South Sathorn'); // ส่วนข้อมูลผู้ติดต่อ await page.click("(//div[@class='q-tab__label'])[5]"); await page.fill('id=form-input-contact-name', 'วราภรณ์ ศรีสวัสดิ์'); await page.fill('id=form-input-mail', 'asiatech@support.com'); await page.fill("(//input[@id='form-input-telephone'])[1]", '0866522622'); await page.fill("(//input[@id='form-input-telephone'])[2]", '022022002'); await page.click('id=quotation-branch'); await page.waitForSelector('id=quotation-branch_1'); await page.click('id=quotation-branch_1'); await page.waitForSelector("//button[@type='submit']"); await page.click("//button[@type='submit']"); await page.click('id=btn-form-close'); await page.waitForTimeout(2000); const legalEntitlyNameCheck = await page.locator( "//tr[contains(.,'บริษัท เอเชียเทค ซิสเต็มส์ จำกัด') and contains (.,'022022002')]", ); await expect(legalEntitlyNameCheck).toContainText( 'บริษัท เอเชียเทค ซิสเต็มส์ จำกัด', ); await expect(legalEntitlyNameCheck).toContainText('022022002'); } catch (error) { console.error('เกิดข้อผิดพลาดในการทดสอบ', error); isLoginSuccessful = false; throw error; } await page.waitForTimeout(2000); console.log('ระบบทำการสร้างนายจ้างนิติบุคคล'); }); test('TC_2_4_005', async () => { if (!isLoginSuccessful) { await login(page); } try { // เข้าสู่เมนูลูกค้า await page.click('id=menu.manage'); await page.waitForSelector('id=sub-menu-customer'); await page.click('id=sub-menu-customer'); // การเพิ่มนายจ้างนิติบุคคล await page.waitForTimeout(2000); await page.click('id=btn-add'); await page.waitForSelector('id=add-customer-natural-person'); await page.click('id=add-customer-natural-person'); await page.waitForSelector('.dialog-header-container', { state: 'visible', }); await expect(page.locator('.dialog-header-container')).toBeVisible; } catch (error) { console.error('เกิดข้อผิดพลาดในการทดสอบ', error); isLoginSuccessful = false; throw error; } await page.waitForTimeout(2000); console.log('ระบบแสดงหน้าเพิ่มนายจ้างบุคคลธรรมดา'); }); test('TC_2_4_006', async () => { if (!isLoginSuccessful) { await login(page); } try { // เข้าสู่เมนูลูกค้า await page.click('id=menu.manage'); await page.waitForSelector('id=sub-menu-customer'); await page.click('id=sub-menu-customer'); // การเพิ่มนายจ้างนิติบุคคล await page.waitForTimeout(2000); await page.click('id=btn-add'); await page.waitForSelector('id=add-customer-natural-person'); await page.click('id=add-customer-natural-person'); // ส่วนเกี่ยวกับ await page.fill('id=input-card-number', '1524428220420'); await page.waitForSelector('id=form-select-prefix-name'); await page.click('id=form-select-prefix-name'); await page.waitForSelector('id=form-select-prefix-name_0'); await page.click('id=form-select-prefix-name_0'); await page.fill('id=form-input-first-name', 'ยศพัฒน์'); await page.fill('id=form-input-last-name', 'ธนากานต์'); await page.fill('id=form-input-first-name-en', 'Yossapat'); await page.fill('id=form-input-last-name-en', 'Tanakarn'); await page.fill('id=form-input-telephone', '0842262228'); await page.waitForSelector('id=form-input-birth-date'); await page.click('id=form-input-birth-date'); await page.waitForSelector( "(//button[@class='dp__btn dp__month_year_select'])[2]", ); await page.click("(//button[@class='dp__btn dp__month_year_select'])[2]"); await page.click("//div[text()='1999']"); await page.click("(//button[@class='dp__btn dp__month_year_select'])[1]"); await page.click("//div[text()='ต.ค.']"); await page.click("//div[@id='1999-10-02']/div[1]"); // ส่วนข้อมูลธุรกิจ await page.waitForSelector("(//div[@aria-selected='false'])[2]"); await page.click("(//div[@aria-selected='false'])[2]"); await page.waitForSelector('id=form-select-business-type'); await page.click('id=form-select-business-type'); await page.click('id=form-select-business-type_6'); await page.waitForSelector('id=form-select-job-position'); await page.click('id=form-select-job-position'); await page.click('id=form-select-job-position_0'); // ส่วนที่อยู่นายจ้าง await page.click("(//div[@aria-selected='false'])[3]"); await page.fill("(//input[@id='form-input-address'])[1]", '22282205202'); await page.fill('id=form-input-address-no', '200'); await page.click('id=form-select-province'); await page.waitForSelector('id=form-select-province_4'); await page.click('id=form-select-province_4'); await page.click('id=form-select-district'); await page.waitForSelector('id=form-select-district_8'); await page.click('id=form-select-district_8'); await page.click('id=form-select-sub-district'); await page.waitForSelector('id=form-select-sub-district_7'); await page.click('id=form-select-sub-district_7'); await page.fill('id=form-input-address-en', '200'); await page.click("//button[@type='submit']"); await page.click('id=btn-form-close'); // กำหนดค่าเพื่อตรวจสอบความถูกต้องหลังสร้าง const nameTitleNatrualPerson = await page.locator( "//tr[contains(.,'นาย ยศพัฒน์ ธนากานต์') and contains (.,'--')]", ); expect(nameTitleNatrualPerson).toContainText('ยศพัฒน์ ธนากานต์'); expect(nameTitleNatrualPerson).toContainText('--'); } catch (error) { console.error('เกิดข้อผิดพลาดในการทดสอบ', error); isLoginSuccessful = false; throw error; } await page.waitForTimeout(2000); console.log('ระบบสามารถสร้างนายจ้างบุคคลธรรมดาได้'); }); test('TC_2_4_007', async () => { if (!isLoginSuccessful) { await login(page); } try { // เข้าสู่เมนูลูกค้า await page.click('id=menu.manage'); await page.waitForSelector('id=sub-menu-customer'); await page.click('id=sub-menu-customer'); // ตรวจสอบการเข้าไปในนายจ้างนิติบุคคล try { await page.waitForSelector( "//td[contains(.,'บริษัท เอเชียเทค ซิสเต็มส์ จำกัดAsiaTech Systems Co., Ltd.')]", ); await page.click( "//td[contains(.,'บริษัท เอเชียเทค ซิสเต็มส์ จำกัดAsiaTech Systems Co., Ltd.')]", ); const detailInLegalPerson = page.locator( "//tr[contains(.,'บริษัท เอเชียเทค ซิสเต็มส์ จำกัด') and contains (.,'0')]", ); await expect(detailInLegalPerson).toContainText( 'บริษัท เอเชียเทค ซิสเต็มส์ จำกัด', ); await expect(detailInLegalPerson).toContainText( '1234 อาคารซิตี้ทาวเวอร์ ชั้น 12, ถนนสาทรใต้, แขวงบางมด, เขตทุ่งครุ, จังหวัดกรุงเทพมหานคร, 10140', ); await expect(detailInLegalPerson).toContainText('022202002'); await expect(detailInLegalPerson).toContainText('กิจการก่อสร้าง'); await expect(detailInLegalPerson).toContainText('0'); } catch (error) { console.error('เกิดข้อผิดพลาดในการแสดงนายจ้างนิติบุคค]', error); throw error; } // กลับไปสู่หน้าจัดการลูกค้า await page.waitForSelector( "//span[normalize-space(text())='จัดการลูกค้าภายในองค์กร']", ); await page.click( "//span[normalize-space(text())='จัดการลูกค้าภายในองค์กร']", ); // ตรวจสอบการเข้าไปในนายจ้างบุคคลธรรมดา try { await page.waitForSelector( "//td[contains(.,'นาย ยศพัฒน์ ธนากานต์Mr Yossapat Tanakarn')]", ); await page.click( "//td[contains(.,'นาย ยศพัฒน์ ธนากานต์Mr Yossapat Tanakarn')]", ); const detailInNaturalPerson = page.locator( "//tr[contains(.,'ยศพัฒน์ ธนากานต์') and contains (.,'0')]", ); await expect(detailInNaturalPerson).toContainText('ยศพัฒน์ ธนากานต์'); await expect(detailInNaturalPerson).toContainText( '200, ตำบลนิคมทุ่งโพธิ์ทะเล, อำเภอเมืองกำแพงเพชร, จังหวัดกำแพงเพชร, 62000', ); await expect(detailInNaturalPerson).toContainText('0842262228 '); await expect(detailInNaturalPerson).toContainText( 'ต่อเนื่องปศุสัตว์โรงฆ่าสัตว์ ชำแหละ ', ); await expect(detailInNaturalPerson).toContainText('0'); } catch (error) { console.error('เกิดข้อผิดพลาดในการแสดงนายจ้างบุคคลธรรมดา', error); throw error; } } catch (error) { console.error('เกิดข้อผิดพลาดในการทดสอบ', error); isLoginSuccessful = false; throw error; } await page.waitForTimeout(2000); console.log('ระบบแสดงข้อมูลภายในของนายจ้างนิติบุคคลและนายจ้างบุคคลธรรมดา'); }); test('TC_2_4_008', async () => { if (!isLoginSuccessful) { await login(page); } try { // เข้าสู่เมนูลูกค้า await page.click('id=menu.manage'); await page.waitForSelector('id=sub-menu-customer'); await page.click('id=sub-menu-customer'); // ตรวจสอบการเข้าไปในนายจ้างนิติบุคคล try { await page.waitForSelector( "//td[contains(.,'บริษัท เอเชียเทค ซิสเต็มส์ จำกัดAsiaTech Systems Co., Ltd.')]", ); await page.click( "//td[contains(.,'บริษัท เอเชียเทค ซิสเต็มส์ จำกัดAsiaTech Systems Co., Ltd.')]", ); await page.waitForSelector( 'id=btn-show-employee-บริษัท เอเชียเทค ซิสเต็มส์ จำกัด', ); await page.click('id=btn-show-employee-บริษัท เอเชียเทค ซิสเต็มส์ จำกัด'); // เพิ่มลูกจ้างในนายจ้างนิติบุุคตล await page.waitForSelector( 'id=บริษัท เอเชียเทค ซิสเต็มส์ จำกัด-btn-add-employee', ); await page.click('id=บริษัท เอเชียเทค ซิสเต็มส์ จำกัด-btn-add-employee'); // ส่วนข้อมูลพื้นฐาน await page.fill('id=form-employee-input-nrc-no', '2202292283202'); // ส่วนข้อมูลส่วนตัว await page.click('id=form-employee-select-prefix-name'); await page.waitForSelector('id=form-employee-select-prefix-name_0'); await page.fill( "(//input[@id='form-employee-input-first-name'])[1]", fakerTH.person.firstName('male'), ); await page.fill( 'id=form-employee-input-last-name', fakerTH.person.lastName(), ); await page.fill( 'id=form-employee-input-first-name-en', fakerEN.person.firstName(), ); await page.fill( 'id=form-employee-input-last-name-en', fakerEN.person.lastName(), ); // วันเดือนปีเกิด await page.click('id=form-employee-input-birth-date'); await page.waitForSelector( "(//button[@class='dp__btn dp__month_year_select'])[2]", ); await page.click("(//button[@class='dp__btn dp__month_year_select'])[2]"); await page.waitForSelector("//div[text()='2000']"); await page.click("//div[text()='2000']"); await page.waitForSelector( "(//button[@class='dp__btn dp__month_year_select'])[1]", ); await page.click("(//button[@class='dp__btn dp__month_year_select'])[1]"); await page.waitForSelector("//div[text()='ก.พ.']"); await page.click("//div[text()='ก.พ.']"); await page.waitForSelector("//div[@id='2000-02-04']/div[1]"); await page.click("//div[@id='2000-02-04']/div[1]"); // เลือกเพศและสัญชาติ await page.click('id=form-employee-select-gender'); await page.click('id=form-employee-select-gender_0'); await page.click('id=form-employee-select-nationality'); await page.waitForSelector('id=form-employee-select-nationality_2'); await page.click('id=form-employee-select-nationality_2'); await page.waitForSelector('id=btn-info-basic-save'); await page.click('id=btn-info-basic-save'); await page.waitForTimeout(2000); await page.click('id=btn-form-close'); const employeeAddCompeleted = page.locator( `(//tr[@id='row-table-${fakerEN.person.firstName()}'])[1]`, ); await expect(employeeAddCompeleted).toBeVisible; } catch (error) { console.error('เกิดข้อผิดพลาดในการแสดงนายจ้างนิติบุคค]', error); throw error; } // กลับไปสู่หน้าจัดการลูกค้า await page.waitForSelector( "//span[normalize-space(text())='จัดการลูกค้าภายในองค์กร']", ); await page.click( "//span[normalize-space(text())='จัดการลูกค้าภายในองค์กร']", ); // ตรวจสอบการเข้าไปในนายจ้างบุคคลธรรมดา try { await page.waitForSelector( "//td[contains(.,'นาย ยศพัฒน์ ธนากานต์Mr Yossapat Tanakarn')]", ); await page.click( "//td[contains(.,'นาย ยศพัฒน์ ธนากานต์Mr Yossapat Tanakarn')]", ); await page.waitForSelector('id=btn-show-employee-ยศพัฒน์ ธนากานต์'); await page.click('id=btn-show-employee-ยศพัฒน์ ธนากานต์'); // เพิ่มลูกจ้างในนายจ้างนิติบุุคตล await page.waitForSelector('id=ยศพัฒน์-btn-add-employee'); await page.click('id=ยศพัฒน์-btn-add-employee'); // ส่วนข้อมูลพื้นฐาน await page.fill('id=form-employee-input-nrc-no', '2202292283202'); // ส่วนข้อมูลส่วนตัว await page.click('id=form-employee-select-prefix-name'); await page.waitForSelector('id=form-employee-select-prefix-name_0'); await page.fill( "(//input[@id='form-employee-input-first-name'])[1]", fakerTH.person.firstName('male'), ); await page.fill( 'id=form-employee-input-last-name', fakerTH.person.lastName(), ); await page.fill( 'id=form-employee-input-first-name-en', fakerEN.person.firstName(), ); await page.fill( 'id=form-employee-input-last-name-en', fakerEN.person.lastName(), ); // วันเดือนปีเกิด await page.click('id=form-employee-input-birth-date'); await page.waitForSelector( "(//button[@class='dp__btn dp__month_year_select'])[2]", ); await page.click("(//button[@class='dp__btn dp__month_year_select'])[2]"); await page.waitForSelector("//div[text()='2000']"); await page.click("//div[text()='2000']"); await page.waitForSelector( "(//button[@class='dp__btn dp__month_year_select'])[1]", ); await page.click("(//button[@class='dp__btn dp__month_year_select'])[1]"); await page.waitForSelector("//div[text()='ก.พ.']"); await page.click("//div[text()='ก.พ.']"); await page.waitForSelector("//div[@id='2000-02-04']/div[1]"); await page.click("//div[@id='2000-02-04']/div[1]"); // เลือกเพศและสัญชาติ await page.click('id=form-employee-select-gender'); await page.click('id=form-employee-select-gender_0'); await page.click('id=form-employee-select-nationality'); await page.waitForSelector('id=form-employee-select-nationality_2'); await page.click('id=form-employee-select-nationality_2'); await page.waitForSelector("(//button[@id='btn-info-basic-save'])[2]"); await page.click("(//button[@id='btn-info-basic-save'])[2]"); await page.waitForTimeout(2000); await page.click('id=btn-form-close'); const employeeAddCompeleted = page.locator( `(//tr[@id='row-table-${fakerEN.person.firstName()}'])[1]`, ); await expect(employeeAddCompeleted).toBeVisible; } catch (error) { console.error('เกิดข้อผิดพลาดในการแสดงนายจ้างบุคคลธรรมดา', error); throw error; } } catch (error) { console.error('เกิดข้อผิดพลาดในการทดสอบ', error); isLoginSuccessful = false; throw error; } await page.waitForTimeout(2000); console.log( 'ระบบสามารถเพิ่มลูกจ้างในนายจ้างนิติบุคคลและนายจ้างบุคคลธรรมดาได้', ); }); test('TC_2_4_009', async () => { if (!isLoginSuccessful) { await login(page); } try { // เข้าสู่เมนูลูกค้า await page.click('id=menu.manage'); await page.waitForSelector('id=sub-menu-customer'); await page.click('id=sub-menu-customer'); // --------------------------------------สถานะนายจ้างนิติบุคคล------------------------------------------- try { // ----------------------------------------ปิดสถานะนายจ้างนิติบุคคล---------------------------------- await page.click('id=btn-kebab-action-อนุชา ศรีสวัสดิ์'); await page.click('id=btn-kebab-status-อนุชา ศรีสวัสดิ์', { force: true, }); await page.click('id=btn-ok-dialog'); console.log('เปลี่ยนสถานะสำเร็จ'); // รอ Update await page.waitForTimeout(2000); console.log('สถานะถูกเปลี่ยนแล้ว'); // ตรวจสอบสีของแถวหลังจากทำการเปลี่ยนสถานะ const rowLocator = page.locator( "//tr[contains(.,'บริษัท เอเชียเทค ซิสเต็มส์ จำกัด') and contains (.,'022022002')]", ); const backgroundColor = await rowLocator.evaluate( (el) => window.getComputedStyle(el).backgroundColor, ); // กำหนดสีหลัเปลี่ยนสถานะการใช้งาน const expectedColor = 'rgb(249, 250, 252)'; // ตรวจสอบสีที่เปลี่ยนไป expect(backgroundColor.trim()).toBe(expectedColor); console.log('สีของแถวถูกเปลี่ยน Inactive'); // -----------------------------------------เปิดสถานะนายจ้างนิติบุคคล-------------------------------------------------- await page.click('id=btn-kebab-action-อนุชา ศรีสวัสดิ์'); await page.click('id=btn-kebab-status-อนุชา ศรีสวัสดิ์', { force: true, }); await page.click('id=btn-ok-dialog'); console.log('เปลี่ยนสถานะสำเร็จ'); // รอ Update await page.waitForTimeout(2000); console.log('สถานะถูกเปลี่ยนแล้ว'); // ตรวจสอบสีของแถวหลังจากทำการเปลี่ยนสถานะ const rowActiveOpenLocator = page.locator( "//tr[contains(.,'บริษัท เอเชียเทค ซิสเต็มส์ จำกัด') and contains (.,'022022002')]", ); const backgroundActiveOpenColor = await rowActiveOpenLocator.evaluate( (el) => window.getComputedStyle(el).backgroundColor, ); // กำหนดสีหลัเปลี่ยนสถานะการใช้งาน const expectedActiveOpenColor = 'rgb(249, 250, 252)'; // ตรวจสอบสีที่เปลี่ยนไป expect(backgroundActiveOpenColor.trim()).toBe(expectedActiveOpenColor); console.log('สีของแถวถูกเปลี่ยนเป็น Active'); } catch (error) { console.error('ไม่สามารถเปลี่ยนสถานะได้'); } } catch (error) { console.error('เกิดข้อผิดพลาดในการทดสอบ', error); isLoginSuccessful = false; throw error; } await page.waitForTimeout(2000); console.log('ระบบแสดงข้อมูลภายในของนายจ้างนิติบุคคลและนายจ้างบุคคลธรรมดา'); }); test('TC_2_4_010', async () => { if (!isLoginSuccessful) { await login(page); } try { // เข้าสู่เมนูลูกค้า await page.click('id=menu.manage'); await page.waitForSelector('id=sub-menu-customer'); await page.click('id=sub-menu-customer'); // การเข้าหน้าแก้ไขนายจ้างนิติบุคคล await page.click('id=btn-kebab-action-อนุชา ศรีสวัสดิ์'); await page.waitForSelector('id=btn-kebab-edit-อนุชา ศรีสวัสดิ์'); await page.click('id=btn-kebab-edit-อนุชา ศรีสวัสดิ์'); const pageHeadEditLegalPerson = page.locator( "//span[text()='บริษัท เอเชียเทค ซิสเต็มส์ จำกัด']", ); await expect(pageHeadEditLegalPerson).toHaveText( 'บริษัท เอเชียเทค ซิสเต็มส์ จำกัด', ); await page.waitForTimeout(2000); await page.click("(//button[@id='btn-info-cancel'])[1]"); // การเข้าหน้าแก้ไขนายจ้างบุคคลธรรมดา await page.waitForSelector('id=btn-kebab-action-ยศพัฒน์'); await page.click('id=btn-kebab-action-ยศพัฒน์'); await page.waitForSelector('id=btn-kebab-edit-ยศพัฒน์'); await page.click('id=btn-kebab-edit-ยศพัฒน์'); const pageHeadEditNaturalPerson = page.locator( "//span[text()='ยศพัฒน์ ธนากานต์']", ); await expect(pageHeadEditNaturalPerson).toHaveText('ยศพัฒน์ ธนากานต์'); } catch (error) { console.error('เกิดข้อผิดพลาดในการทดสอบ', error); isLoginSuccessful = false; throw error; } await page.waitForTimeout(2000); console.log('ระบบแสดงหน้าแก้ไขนายจ้างนิติบุคคลและนายจ้างบุคคลธรรมดา'); }); test('TC_2_4_011', async () => { if (!isLoginSuccessful) { await login(page); } try { // สร้างค่าชื่อบริษัทที่เหมือนกันทั้งภาษาไทยและอังกฤษ const companyNameTH = fakerTH.company.name(); const companyNameEN = fakerEN.company.name(); const firstNameTH = fakerTH.person.firstName('male'); const lastNameTH = fakerTH.person.lastName(); const firstNameEN = fakerEN.person.firstName(); const lastNameEN = fakerEN.person.firstName(); // เข้าสู่เมนูลูกค้า await page.click('id=menu.manage'); await page.waitForSelector('id=sub-menu-customer'); await page.click('id=sub-menu-customer'); // การเข้าหน้าแก้ไขนายจ้างนิติบุคคล await page.click('id=btn-kebab-action-อนุชา ศรีสวัสดิ์'); await page.waitForSelector('id=btn-kebab-edit-อนุชา ศรีสวัสดิ์'); await page.click('id=btn-kebab-edit-อนุชา ศรีสวัสดิ์'); await page.fill('id=input-register-name', companyNameTH); await page.fill('id=input-register-name-en', companyNameEN); await page.click("(//button[@type='submit'])[1]"); await page.waitForTimeout(2000); await page.click("(//button[@id='btn-info-cancel'])[1]"); // ใช้ตัวแปรเดิมตรวจสอบผลลัพธ์ const pageHeadEditLegalPerson = page.locator( `//tr[contains(.,'${companyNameTH}') and contains(.,'022022002')]`, ); await expect(pageHeadEditLegalPerson).toContainText(companyNameTH); // การเข้าหน้าแก้ไขนายจ้างบุคคลธรรมดา await page.waitForSelector('id=btn-kebab-action-ยศพัฒน์'); await page.click('id=btn-kebab-action-ยศพัฒน์'); await page.waitForSelector('id=btn-kebab-edit-ยศพัฒน์'); await page.click('id=btn-kebab-edit-ยศพัฒน์'); await page.fill('id=info-input-first-name', firstNameTH); await page.fill('id=info-input-last-name', lastNameTH); await page.fill('id=info-input-first-name-en', firstNameEN); await page.fill('id=info-input-last-name-en', lastNameEN); await page.click("(//button[@type='submit'])[1]"); await page.waitForTimeout(2000); await page.click("(//button[@id='btn-info-cancel'])[1]"); // ใช้ตัวแปรเดิมตรวจสอบผลลัพธ์ const pageHeadEditNaturallPerson = page.locator( `//tr[contains(.,'${firstNameTH} ${lastNameTH}') and contains (.,'--')]`, ); await expect(pageHeadEditNaturallPerson).toContainText(firstNameTH); await expect(pageHeadEditNaturallPerson).toContainText(lastNameTH); } catch (error) { console.error('เกิดข้อผิดพลาดในการทดสอบ', error); isLoginSuccessful = false; throw error; } await page.waitForTimeout(2000); console.log('ระบบสามารถแก้ไขนายจ้างนิติบุคคลและนายจ้างบุคคลธรรมดาได้'); }); test('TC_2_4_012', async () => { if (!isLoginSuccessful) { await login(page); } try { // เข้าสู่เมนูลูกค้า await page.click('id=menu.manage'); await page.waitForSelector('id=sub-menu-customer'); await page.click('id=sub-menu-customer'); // เข้าแท็ปลูกจ้างเพื่อทำการเพิ่มลูกจ้าง await page.waitForSelector('id=tab-employee'); await page.click('id=tab-employee'); await page.waitForSelector('id=btn-add'); await page.click('id=btn-add'); // ตรวจสอบการแสดงหน้าเพิ่มลูกจ้าง const pageAddEmployee = page.locator( "//form[contains(.,'เพิ่ม ลูกจ้าง') and contains (.,'ยังไม่มีข้อมูลแสดงในตารางนี้')]", ); await expect(pageAddEmployee).toContainText('เพิ่ม ลูกจ้าง'); } catch (error) { console.error('เกิดข้อผิดพลาดในการทดสอบ', error); isLoginSuccessful = false; throw error; } await page.waitForTimeout(2000); console.log('ระบบแสดงหน้าเพิ่มลูกจ้าง'); }); test('TC_2_4_013', async () => { if (!isLoginSuccessful) { await login(page); } try { // สร้างค่าชื่อบริษัทที่เหมือนกันทั้งภาษาไทยและอังกฤษ const firstNameTH = fakerTH.person.firstName('male'); const middleNameTH = fakerTH.person.middleName(); const lastNameTH = fakerTH.person.lastName(); const firstNameEN = fakerEN.person.firstName(); const middleNameEN = fakerEN.person.middleName(); const lastNameEN = fakerEN.person.firstName(); // เข้าสู่เมนูลูกค้า await page.click('id=menu.manage'); await page.waitForSelector('id=sub-menu-customer'); await page.click('id=sub-menu-customer'); // เข้าแท็ปลูกจ้างเพื่อทำการเพิ่มลูกจ้าง await page.waitForSelector('id=tab-employee'); await page.click('id=tab-employee'); await page.waitForSelector('id=btn-add'); await page.click('id=btn-add'); // ส่วนข้อมูลพื้นฐาน await page.click('id=form-employee-select-employer-branch'); await page.waitForSelector('id=form-employee-select-employer-branch_0'); await page.click('id=form-employee-select-employer-branch_0'); await page.fill('id=form-employee-input-nrc-no', '1223423112342'); // ส่วนข้อมูลส่วนตัว await page.click('id=form-employee-select-prefix-name'); await page.waitForSelector('id=form-employee-select-prefix-name_0'); await page.click('id=form-employee-select-prefix-name_0'); await page.fill( "(//input[@id='form-employee-input-first-name'])[1]", firstNameTH, ); await page.fill('id=form-employee-input-last-name', lastNameTH); await page.fill('id=form-employee-input-first-name-en', firstNameEN); await page.fill('id=form-employee-input-last-name-en', lastNameEN); // วันเดิิอนปีเกิด await page.click('id=form-employee-input-birth-date'); await page.waitForSelector( "(//button[@class='dp__btn dp__month_year_select'])[2]", ); await page.click("(//button[@class='dp__btn dp__month_year_select'])[2]"); await page.click("//div[text()='1996']"); await page.click("(//button[@class='dp__btn dp__month_year_select'])[1]"); await page.click("//div[text()='พ.ค.']"); await page.click("//div[@id='1996-05-02']/div[1]"); // สัญชาติ await page.click('id=form-employee-select-nationality'); await page.waitForSelector('id=form-employee-select-nationality_2'); await page.click('id=form-employee-select-nationality_2'); await page.click('id=btn-info-basic-save'); await page.waitForTimeout(2000); const showTabPassport = page.locator( 'id=dialog-tab-ข้อมูลหนังสือการเดินทาง', ); const showTabVisa = page.locator('id=dialog-tab-ข้อมูล Visa'); const showTabHealthDetail = page.locator('id=dialog-tab-ข้อมูลสุขภาพ'); const showTabJobDetail = page.locator('id=dialog-tab-ข้อมูลการทำงาน'); const showTabMore = page.locator('id=dialog-tab-ข้อมูลอื่นๆ'); await expect(showTabPassport).toBeVisible; await expect(showTabVisa).toBeVisible; await expect(showTabHealthDetail).toBeVisible; await expect(showTabJobDetail).toBeVisible; await expect(showTabMore).toBeVisible; } catch (error) { console.error('เกิดข้อผิดพลาดในการทดสอบ', error); isLoginSuccessful = false; throw error; } await page.waitForTimeout(2000); console.log('ระบบทำการสร้างลูกจ้างได้'); }); test('TC_2_4_014', async () => { if (!isLoginSuccessful) { await login(page); } try { // สร้างค่าชื่อบริษัทที่เหมือนกันทั้งภาษาไทยและอังกฤษ const firstNameTH = fakerTH.person.firstName('male'); const middleNameTH = fakerTH.person.middleName(); const lastNameTH = fakerTH.person.lastName(); const firstNameEN = fakerEN.person.firstName(); const middleNameEN = fakerEN.person.middleName(); const lastNameEN = fakerEN.person.firstName(); // เข้าสู่เมนูลูกค้า await page.click('id=menu.manage'); await page.waitForSelector('id=sub-menu-customer'); await page.click('id=sub-menu-customer'); // เข้าแท็ปลูกจ้างเพื่อทำการเพิ่มลูกจ้าง await page.waitForSelector('id=tab-employee'); await page.click('id=tab-employee'); await page.waitForSelector('id=btn-add'); await page.click('id=btn-add'); // ส่วนข้อมูลพื้นฐาน await page.click('id=form-employee-select-employer-branch'); await page.waitForSelector('id=form-employee-select-employer-branch_0'); await page.click('id=form-employee-select-employer-branch_0'); await page.fill('id=form-employee-input-nrc-no', '1223423112342'); // ส่วนข้อมูลส่วนตัว await page.click('id=form-employee-select-prefix-name'); await page.waitForSelector('id=form-employee-select-prefix-name_0'); await page.click('id=form-employee-select-prefix-name_0'); await page.fill( "(//input[@id='form-employee-input-first-name'])[1]", firstNameTH, ); await page.fill('id=form-employee-input-last-name', lastNameTH); await page.fill('id=form-employee-input-first-name-en', firstNameEN); await page.fill('id=form-employee-input-last-name-en', lastNameEN); // วันเดิิอนปีเกิด await page.click('id=form-employee-input-birth-date'); await page.waitForSelector( "(//button[@class='dp__btn dp__month_year_select'])[2]", ); await page.click("(//button[@class='dp__btn dp__month_year_select'])[2]"); await page.click("//div[text()='1996']"); await page.click("(//button[@class='dp__btn dp__month_year_select'])[1]"); await page.click("//div[text()='พ.ค.']"); await page.click("//div[@id='1996-05-02']/div[1]"); // สัญชาติ await page.click('id=form-employee-select-nationality'); await page.waitForSelector('id=form-employee-select-nationality_2'); await page.click('id=form-employee-select-nationality_2'); await page.click('id=btn-info-basic-save'); await page.waitForTimeout(2000); await page.waitForSelector('id=dialog-tab-ข้อมูลสุขภาพ'); await page.click('id=dialog-tab-ข้อมูลสุขภาพ'); const showFormHealth = page.locator('id=employee-form-content'); await expect(showFormHealth).toBeVisible; } catch (error) { console.error('เกิดข้อผิดพลาดในการทดสอบ', error); isLoginSuccessful = false; throw error; } await page.waitForTimeout(2000); console.log('ระบบแสดงแท็ปข้อมูลสุขภาพครั้งที่ 1'); }); // test('TC_2_4_015', async () => { // if (!isLoginSuccessful) { // await login(page); // } // try { // // สร้างค่าชื่อบริษัทที่เหมือนกันทั้งภาษาไทยและอังกฤษ // const firstNameTH = fakerTH.person.firstName('male'); // const middleNameTH = fakerTH.person.middleName(); // const lastNameTH = fakerTH.person.lastName(); // const firstNameEN = fakerEN.person.firstName(); // const middleNameEN = fakerEN.person.middleName(); // const lastNameEN = fakerEN.person.firstName(); // // เข้าสู่เมนูลูกค้า // await page.click('id=menu.manage'); // await page.waitForSelector('id=sub-menu-customer'); // await page.click('id=sub-menu-customer'); // // เข้าแท็ปลูกจ้างเพื่อทำการเพิ่มลูกจ้าง // await page.waitForSelector('id=tab-employee'); // await page.click('id=tab-employee'); // await page.waitForSelector('id=btn-add'); // await page.click('id=btn-add'); // // ส่วนข้อมูลพื้นฐาน // await page.click('id=form-employee-select-employer-branch'); // await page.waitForSelector('id=form-employee-select-employer-branch_0'); // await page.click('id=form-employee-select-employer-branch_0'); // await page.fill('id=form-employee-input-nrc-no', '1223423112342'); // // ส่วนข้อมูลส่วนตัว // await page.click('id=form-employee-select-prefix-name'); // await page.waitForSelector('id=form-employee-select-prefix-name_0'); // await page.click('id=form-employee-select-prefix-name_0'); // await page.fill( // "(//input[@id='form-employee-input-first-name'])[1]", // firstNameTH, // ); // await page.fill('id=form-employee-input-last-name', lastNameTH); // await page.fill('id=form-employee-input-first-name-en', firstNameEN); // await page.fill('id=form-employee-input-last-name-en', lastNameEN); // // วันเดิิอนปีเกิด // await page.click('id=form-employee-input-birth-date'); // await page.waitForSelector( // "(//button[@class='dp__btn dp__month_year_select'])[2]", // ); // await page.click("(//button[@class='dp__btn dp__month_year_select'])[2]"); // await page.click("//div[text()='1996']"); // await page.click("(//button[@class='dp__btn dp__month_year_select'])[1]"); // await page.click("//div[text()='พ.ค.']"); // await page.click("//div[@id='1996-05-02']/div[1]"); // // สัญชาติ // await page.click('id=form-employee-select-nationality'); // await page.waitForSelector('id=form-employee-select-nationality_2'); // await page.click('id=form-employee-select-nationality_2'); // await page.click('id=btn-info-basic-save'); // await page.waitForTimeout(2000); // await page.waitForSelector('id=dialog-tab-ข้อมูลสุขภาพ'); // await page.click('id=dialog-tab-ข้อมูลสุขภาพ'); // const showFormHealth = page.locator('id=employee-form-content'); // await expect(showFormHealth).toBeVisible; // } catch (error) { // console.error('เกิดข้อผิดพลาดในการทดสอบ', error); // isLoginSuccessful = false; // throw error; // } // await page.waitForTimeout(2000); // console.log('ระบบแสดงแท็ปข้อมูลสุขภาพครั้งที่ 1'); // }); test('TC_2_4_016', async () => { if (!isLoginSuccessful) { await login(page); } try { // สร้างค่าชื่อบริษัทที่เหมือนกันทั้งภาษาไทยและอังกฤษ const firstNameTH = fakerTH.person.firstName('male'); const middleNameTH = fakerTH.person.middleName(); const lastNameTH = fakerTH.person.lastName(); const firstNameEN = fakerEN.person.firstName(); const middleNameEN = fakerEN.person.middleName(); const lastNameEN = fakerEN.person.firstName(); // เข้าสู่เมนูลูกค้า await page.click('id=menu.manage'); await page.waitForSelector('id=sub-menu-customer'); await page.click('id=sub-menu-customer'); // เข้าแท็ปลูกจ้างเพื่อทำการเพิ่มลูกจ้าง await page.waitForSelector('id=tab-employee'); await page.click('id=tab-employee'); await page.waitForSelector('id=btn-add'); await page.click('id=btn-add'); // ส่วนข้อมูลพื้นฐาน await page.click('id=form-employee-select-employer-branch'); await page.waitForSelector('id=form-employee-select-employer-branch_0'); await page.click('id=form-employee-select-employer-branch_0'); await page.fill('id=form-employee-input-nrc-no', '1223423112342'); // ส่วนข้อมูลส่วนตัว await page.click('id=form-employee-select-prefix-name'); await page.waitForSelector('id=form-employee-select-prefix-name_0'); await page.click('id=form-employee-select-prefix-name_0'); await page.fill( "(//input[@id='form-employee-input-first-name'])[1]", firstNameTH, ); await page.fill('id=form-employee-input-last-name', lastNameTH); await page.fill('id=form-employee-input-first-name-en', firstNameEN); await page.fill('id=form-employee-input-last-name-en', lastNameEN); // วันเดิิอนปีเกิด await page.click('id=form-employee-input-birth-date'); await page.waitForSelector( "(//button[@class='dp__btn dp__month_year_select'])[2]", ); await page.click("(//button[@class='dp__btn dp__month_year_select'])[2]"); await page.click("//div[text()='1996']"); await page.click("(//button[@class='dp__btn dp__month_year_select'])[1]"); await page.click("//div[text()='พ.ค.']"); await page.click("//div[@id='1996-05-02']/div[1]"); // สัญชาติ await page.click('id=form-employee-select-nationality'); await page.waitForSelector('id=form-employee-select-nationality_2'); await page.click('id=form-employee-select-nationality_2'); await page.click('id=btn-info-basic-save'); await page.waitForTimeout(2000); await page.waitForSelector('id=dialog-tab-ข้อมูลการทำงาน'); await page.click('id=dialog-tab-ข้อมูลการทำงาน'); const showFormHealth = page.locator('id=employee-form-content'); await expect(showFormHealth).toBeVisible; } catch (error) { console.error('เกิดข้อผิดพลาดในการทดสอบ', error); isLoginSuccessful = false; throw error; } await page.waitForTimeout(2000); console.log('ระบบแสดงแท็ปข้อมูลการทำงาน'); }); // test('TC_2_4_017', async () => { // if (!isLoginSuccessful) { // await login(page); // } // try { // // สร้างค่าชื่อบริษัทที่เหมือนกันทั้งภาษาไทยและอังกฤษ // const firstNameTH = fakerTH.person.firstName('male'); // const middleNameTH = fakerTH.person.middleName(); // const lastNameTH = fakerTH.person.lastName(); // const firstNameEN = fakerEN.person.firstName(); // const middleNameEN = fakerEN.person.middleName(); // const lastNameEN = fakerEN.person.firstName(); // // เข้าสู่เมนูลูกค้า // await page.click('id=menu.manage'); // await page.waitForSelector('id=sub-menu-customer'); // await page.click('id=sub-menu-customer'); // // เข้าแท็ปลูกจ้างเพื่อทำการเพิ่มลูกจ้าง // await page.waitForSelector('id=tab-employee'); // await page.click('id=tab-employee'); // await page.waitForSelector('id=btn-add'); // await page.click('id=btn-add'); // // ส่วนข้อมูลพื้นฐาน // await page.click('id=form-employee-select-employer-branch'); // await page.waitForSelector('id=form-employee-select-employer-branch_0'); // await page.click('id=form-employee-select-employer-branch_0'); // await page.fill('id=form-employee-input-nrc-no', '1223423112342'); // // ส่วนข้อมูลส่วนตัว // await page.click('id=form-employee-select-prefix-name'); // await page.waitForSelector('id=form-employee-select-prefix-name_0'); // await page.click('id=form-employee-select-prefix-name_0'); // await page.fill( // "(//input[@id='form-employee-input-first-name'])[1]", // firstNameTH, // ); // await page.fill('id=form-employee-input-last-name', lastNameTH); // await page.fill('id=form-employee-input-first-name-en', firstNameEN); // await page.fill('id=form-employee-input-last-name-en', lastNameEN); // // วันเดิิอนปีเกิด // await page.click('id=form-employee-input-birth-date'); // await page.waitForSelector( // "(//button[@class='dp__btn dp__month_year_select'])[2]", // ); // await page.click("(//button[@class='dp__btn dp__month_year_select'])[2]"); // await page.click("//div[text()='1996']"); // await page.click("(//button[@class='dp__btn dp__month_year_select'])[1]"); // await page.click("//div[text()='พ.ค.']"); // await page.click("//div[@id='1996-05-02']/div[1]"); // // สัญชาติ // await page.click('id=form-employee-select-nationality'); // await page.waitForSelector('id=form-employee-select-nationality_2'); // await page.click('id=form-employee-select-nationality_2'); // await page.click('id=btn-info-basic-save'); // await page.waitForTimeout(2000); // await page.waitForSelector('id=dialog-tab-ข้อมูลการทำงาน'); // await page.click('id=dialog-tab-ข้อมูลการทำงาน'); // const showFormHealth = page.locator('id=employee-form-content'); // await expect(showFormHealth).toBeVisible; // } catch (error) { // console.error('เกิดข้อผิดพลาดในการทดสอบ', error); // isLoginSuccessful = false; // throw error; // } // await page.waitForTimeout(2000); // console.log('ระบบแสดงแท็ปข้อมูลการทำงาน'); // }); test('TC_2_4_018', async () => { if (!isLoginSuccessful) { await login(page); } try { // สร้างค่าชื่อบริษัทที่เหมือนกันทั้งภาษาไทยและอังกฤษ const firstNameTH = fakerTH.person.firstName('male'); const middleNameTH = fakerTH.person.middleName(); const lastNameTH = fakerTH.person.lastName(); const firstNameEN = fakerEN.person.firstName(); const middleNameEN = fakerEN.person.middleName(); const lastNameEN = fakerEN.person.firstName(); // เข้าสู่เมนูลูกค้า await page.click('id=menu.manage'); await page.waitForSelector('id=sub-menu-customer'); await page.click('id=sub-menu-customer'); // เข้าแท็ปลูกจ้างเพื่อทำการเพิ่มลูกจ้าง await page.waitForSelector('id=tab-employee'); await page.click('id=tab-employee'); await page.waitForSelector('id=btn-add'); await page.click('id=btn-add'); // ส่วนข้อมูลพื้นฐาน await page.click('id=form-employee-select-employer-branch'); await page.waitForSelector('id=form-employee-select-employer-branch_0'); await page.click('id=form-employee-select-employer-branch_0'); await page.fill('id=form-employee-input-nrc-no', '1223423112342'); // ส่วนข้อมูลส่วนตัว await page.click('id=form-employee-select-prefix-name'); await page.waitForSelector('id=form-employee-select-prefix-name_0'); await page.click('id=form-employee-select-prefix-name_0'); await page.fill( "(//input[@id='form-employee-input-first-name'])[1]", firstNameTH, ); await page.fill('id=form-employee-input-last-name', lastNameTH); await page.fill('id=form-employee-input-first-name-en', firstNameEN); await page.fill('id=form-employee-input-last-name-en', lastNameEN); // วันเดิิอนปีเกิด await page.click('id=form-employee-input-birth-date'); await page.waitForSelector( "(//button[@class='dp__btn dp__month_year_select'])[2]", ); await page.click("(//button[@class='dp__btn dp__month_year_select'])[2]"); await page.click("//div[text()='1996']"); await page.click("(//button[@class='dp__btn dp__month_year_select'])[1]"); await page.click("//div[text()='พ.ค.']"); await page.click("//div[@id='1996-05-02']/div[1]"); // สัญชาติ await page.click('id=form-employee-select-nationality'); await page.waitForSelector('id=form-employee-select-nationality_2'); await page.click('id=form-employee-select-nationality_2'); await page.click('id=btn-info-basic-save'); await page.waitForTimeout(2000); await page.waitForSelector('id=dialog-tab-ข้อมูลอื่นๆ'); await page.click('id=dialog-tab-ข้อมูลอื่นๆ'); const showFormHealth = page.locator('id=employee-form-content'); await expect(showFormHealth).toBeVisible; } catch (error) { console.error('เกิดข้อผิดพลาดในการทดสอบ', error); isLoginSuccessful = false; throw error; } await page.waitForTimeout(2000); console.log('ระบบแสดงแท็ปข้อมูลอื่นๆ'); }); test('TC_2_4_019', async () => { if (!isLoginSuccessful) { await login(page); } try { // สร้างค่าชื่อบริษัทที่เหมือนกันทั้งภาษาไทยและอังกฤษ const firstNameTH = fakerTH.person.firstName('male'); const middleNameTH = fakerTH.person.middleName(); const lastNameTH = fakerTH.person.lastName(); const firstNameEN = fakerEN.person.firstName(); const middleNameEN = fakerEN.person.middleName(); const lastNameEN = fakerEN.person.firstName(); // เข้าสู่เมนูลูกค้า await page.click('id=menu.manage'); await page.waitForSelector('id=sub-menu-customer'); await page.click('id=sub-menu-customer'); // เข้าแท็ปลูกจ้างเพื่อทำการเพิ่มลูกจ้าง await page.waitForSelector('id=tab-employee'); await page.click('id=tab-employee'); await page.waitForSelector('id=btn-add'); await page.click('id=btn-add'); // ส่วนข้อมูลพื้นฐาน await page.click('id=form-employee-select-employer-branch'); await page.waitForSelector('id=form-employee-select-employer-branch_0'); await page.click('id=form-employee-select-employer-branch_0'); await page.fill('id=form-employee-input-nrc-no', '1223423112342'); // ส่วนข้อมูลส่วนตัว await page.click('id=form-employee-select-prefix-name'); await page.waitForSelector('id=form-employee-select-prefix-name_0'); await page.click('id=form-employee-select-prefix-name_0'); await page.fill( "(//input[@id='form-employee-input-first-name'])[1]", firstNameTH, ); await page.fill('id=form-employee-input-last-name', lastNameTH); await page.fill('id=form-employee-input-first-name-en', firstNameEN); await page.fill('id=form-employee-input-last-name-en', lastNameEN); // วันเดิิอนปีเกิด await page.click('id=form-employee-input-birth-date'); await page.waitForSelector( "(//button[@class='dp__btn dp__month_year_select'])[2]", ); await page.click("(//button[@class='dp__btn dp__month_year_select'])[2]"); await page.click("//div[text()='1996']"); await page.click("(//button[@class='dp__btn dp__month_year_select'])[1]"); await page.click("//div[text()='พ.ค.']"); await page.click("//div[@id='1996-05-02']/div[1]"); // สัญชาติ await page.click('id=form-employee-select-nationality'); await page.waitForSelector('id=form-employee-select-nationality_2'); await page.click('id=form-employee-select-nationality_2'); await page.click('id=btn-info-basic-save'); await page.waitForTimeout(2000); // เข้าหน้าแท็ปข้อมูลอื่นๆ await page.waitForSelector('id=dialog-tab-ข้อมูลอื่นๆ'); await page.click('id=dialog-tab-ข้อมูลอื่นๆ'); await page.fill( "(//input[@id='form-employee-input-citizen-id'])[1]", '2201182726324', ); await page.fill( "(//input[@id='form-employee-input-citizen-id'])[2]", '0882262262', ); await page.fill('id=form-employee-input-father-first-name', firstNameTH); await page.fill('id=form-employee-input-father-last-name', lastNameTH); await page.fill('id=form-employee-input-father-first-name-en', firstNameEN); await page.fill('id=form-employee-input-father-last-name-en', lastNameEN); await page.fill('id=form-employee-input-mother-first-name', firstNameTH); await page.fill('id=form-employee-input-mother-last-name', lastNameTH); await page.fill('id=form-employee-input-mother-first-name-en', firstNameEN); await page.fill('id=form-employee-input-mother-last-name-en', lastNameEN); await page.waitForSelector("(//button[@id='btn-info-health-save'])[2]"); await page.click("(//button[@id='btn-info-health-save'])[2]"); const formEmployeeSave = page.locator('id=form-employee-other'); await expect(formEmployeeSave).toBeVisible; } catch (error) { console.error('เกิดข้อผิดพลาดในการทดสอบ', error); isLoginSuccessful = false; throw error; } await page.waitForTimeout(2000); console.log('ระบบทำการบันทึกข้อมูลส่วนข้อมูลอื่นๆ'); }); // test('TC_2_4_020', async () => { // if (!isLoginSuccessful) { // await login(page); // } // try { // // สร้างค่าชื่อบริษัทที่เหมือนกันทั้งภาษาไทยและอังกฤษ // const firstNameTH = fakerTH.person.firstName('male'); // const middleNameTH = fakerTH.person.middleName(); // const lastNameTH = fakerTH.person.lastName(); // const firstNameEN = fakerEN.person.firstName(); // const middleNameEN = fakerEN.person.middleName(); // const lastNameEN = fakerEN.person.firstName(); // // เข้าสู่เมนูลูกค้า // await page.click('id=menu.manage'); // await page.waitForSelector('id=sub-menu-customer'); // await page.click('id=sub-menu-customer'); // // เข้าแท็ปลูกจ้างเพื่อทำการเพิ่มลูกจ้าง // await page.waitForSelector('id=tab-employee'); // await page.click('id=tab-employee'); // await page.waitForSelector('id=btn-add'); // await page.click('id=btn-add'); // // ส่วนข้อมูลพื้นฐาน // await page.click('id=form-employee-select-employer-branch'); // await page.waitForSelector('id=form-employee-select-employer-branch_0'); // await page.click('id=form-employee-select-employer-branch_0'); // await page.fill('id=form-employee-input-nrc-no', '1223423112342'); // // ส่วนข้อมูลส่วนตัว // await page.click('id=form-employee-select-prefix-name'); // await page.waitForSelector('id=form-employee-select-prefix-name_0'); // await page.click('id=form-employee-select-prefix-name_0'); // await page.fill( // "(//input[@id='form-employee-input-first-name'])[1]", // firstNameTH, // ); // await page.fill('id=form-employee-input-last-name', lastNameTH); // await page.fill('id=form-employee-input-first-name-en', firstNameEN); // await page.fill('id=form-employee-input-last-name-en', lastNameEN); // // วันเดิิอนปีเกิด // await page.click('id=form-employee-input-birth-date'); // await page.waitForSelector( // "(//button[@class='dp__btn dp__month_year_select'])[2]", // ); // await page.click("(//button[@class='dp__btn dp__month_year_select'])[2]"); // await page.click("//div[text()='1996']"); // await page.click("(//button[@class='dp__btn dp__month_year_select'])[1]"); // await page.click("//div[text()='พ.ค.']"); // await page.click("//div[@id='1996-05-02']/div[1]"); // // สัญชาติ // await page.click('id=form-employee-select-nationality'); // await page.waitForSelector('id=form-employee-select-nationality_2'); // await page.click('id=form-employee-select-nationality_2'); // await page.click('id=btn-info-basic-save'); // await page.waitForTimeout(2000); // //-------------------------------------เข้าหน้าแท็ปข้อมูลหนังสือเดินทาง---------------------------------- // await page.waitForSelector('id=dialog-tab-ข้อมูล Visa'); // await page.click('id=dialog-tab-ข้อมูล Visa'); // // ส่วนข้อมูลหนังสือเดินทาง // await page.click( // "(//input[@id='drawer-info-employee-select-visa-type'])[3]", // ); // await page.waitForSelector('id=drawer-info-employee-select-visa-type_0'); // await page.click('id=drawer-info-employee-select-visa-type_0'); // await page.fill( // "(//input[@id='drawer-info-employee-input-previous-passport-Number'])[2]", // 'TH202273', // ); // await page.click( // "(//input[@id='drawer-info-employee-select-prefix-name'])[2]", // ); // await page.waitForSelector('id=drawer-info-employee-select-prefix-name_0'); // await page.click('iddrawer-info-employee-select-prefix-name_0'); // await page.fill( // "(//input[@id='drawer-info-employee-input-first-name'])[2]", // firstNameTH, // ); // await page.fill( // "(//input[@id='drawer-info-employee-input-last-name'])[2]", // lastNameTH, // ); // await page.fill( // "(//input[@id='drawer-info-employee-input-first-name-en'])[2]", // firstNameEN, // ); // await page.fill( // "(//input[@id='drawer-info-employee-input-last-name-en'])[2]", // lastNameEN, // ); // await page.fill( // "(//input[@id='drawer-info-employee-input-passport-no'])[2]", // 'TH202322', // ); // await page.click( // "(//input[@id='drawer-info-employee-input-birth-date'])[2]", // ); // await page.waitForSelector( // "(//button[@class='dp__btn dp__month_year_select'])[2]", // ); // await page.click("(//button[@class='dp__btn dp__month_year_select'])[2]"); // await page.waitForSelector("//div[text()='2020']"); // await page.click("//div[text()='2020']"); // await page.waitForSelector( // "(//button[@class='dp__btn dp__month_year_select'])[1]", // ); // await page.click("(//button[@class='dp__btn dp__month_year_select'])[1]"); // await page.waitForSelector("//div[text()='ม.ค.']"); // await page.click("//div[text()='ม.ค.']"); // await page.waitForSelector("//div[@id='2020-01-02']/div[1]"); // await page.click("//div[@id='2020-01-02']/div[1]"); // await page.click("(//input[@aria-label='สัญชาติ'])[2]"); // await page.waitForSelector('id=drawer-info-employee-select-visa-type_2'); // await page.click('id=drawer-info-employee-select-visa-type_2'); // await page.click( // "(//input[@id='drawer-info-employee-select-passport-country'])[2]", // ); // await page.waitForSelector( // 'id=drawer-info-employee-select-passport-country_1', // ); // await page.click('id=drawer-info-employee-select-passport-country_1'); // await page.click("(//button[@id='btn-info-basic-save'])[2]"); // // ตรวจสอบหลังจากทำการบันทึกข้อมูลหนังสือการเดินทาง // const formPassportSave = page.locator("(//div[@id='form-passport'])[2]"); // await expect(formPassportSave).toBeVisible; // //-------------------------------------เข้าหน้าแท็ปข้อมูล Visa---------------------------------------- // await page.waitForSelector('id=dialog-tab-ข้อมูล Visa'); // await page.click('id=dialog-tab-ข้อมูล Visa'); // await page.click( // "(//input[@id='drawer-info-employee-select-visa-type'])[3]", // ); // await page.waitForSelector('id=drawer-info-employee-select-visa-type_0'); // await page.click('id=drawer-info-employee-select-visa-type_0'); // await page.fill( // "(//input[@aria-label='เลขที่ตรวจลงตรา'])[2]", // '2202202220', // ); // await page.fill( // "(//input[@id='drawer-info-employee-input-visa-place'])[2]", // 'กรุงเทพ', // ); // await page.click("(//input[@aria-label='ประเภทการตรวจลงตรา'])[2]"); // await page.waitForSelector('id=drawer-info-employee-select-visa-type_1'); // await page.click('id=drawer-info-employee-select-visa-type_1'); // await page.fill( // "(//input[@aria-label='บัตรขาเข้า หมายเลข TM'])[2]", // '220322', // ); // await page.click( // "(//input[@id='drawer-info-employee-date-picker-visa-enter'])[2]", // ); // await page.waitForSelector( // "(//button[@class='dp__btn dp__month_year_select'])[2]", // ); // await page.click("(//button[@class='dp__btn dp__month_year_select'])[2]"); // await page.waitForSelector( // "(//button[@class='dp__btn dp__month_year_select'])[2]", // ); // await page.click("(//button[@class='dp__btn dp__month_year_select'])[2]"); // await page.waitForSelector("//div[text()='2020']"); // await page.click("//div[text()='2020']"); // await page.waitForSelector( // "(//button[@class='dp__btn dp__month_year_select'])[1]", // ); // await page.click("(//button[@class='dp__btn dp__month_year_select'])[1]"); // await page.waitForSelector("//div[text()='ม.ค.']"); // await page.click("//div[text()='ม.ค.']"); // await page.waitForSelector("//div[@id='2020-01-08']/div[1]"); // await page.click("//div[@id='2020-01-08']/div[1]"); // await page.fill( // "(//input[@aria-label='เดินทางเข้ามาทางด่าน'])[2]", // 'แม่สอด', // ); // await page.click( // "(//input[@id='drawer-info-employee-select-issue-country'])[2]", // ); // await page.waitForSelector( // 'id=drawer-info-employee-select-issue-country_1', // ); // await page.click('id=drawer-info-employee-select-issue-country_1'); // await page.fill( // "(//input[@id='drawer-info-employee-input-entry-count'])[2]", // '300', // ); // await page.click("(//button[@id='btn-info-basic-save'])[2]"); // // ตรวจสอบหลังจากทำการบันทึกข้อมูล Visa // const formSaveVisa = page.locator("(//div[@id='form-visa'])[2]"); // await expect(formSaveVisa).toBeVisible; // //-------------------------------------เข้าหน้าแท็ปข้อมูลสุขภาพ---------------------------------------- // await page.waitForSelector('id=dialog-tab-ข้อมูลสุขภาพ'); // await page.click('id=dialog-tab-ข้อมูลสุขภาพ'); // await page.click('id=form-employee-select-health-checkresult'); // await page.waitForSelector('id=form-employee-select-health-checkresult_0'); // await page.click('id=form-employee-select-health-checkresult_0'); // await page.click('id=form-employee-select-checkup-type'); // await page.waitForSelector('id=form-employee-select-checkup-type_0'); // await page.click('id=form-employee-select-checkup-type_0'); // await page.fill('id=form-employee-input-hospital', 'โรงพยาบาลตากสิน'); // await page.click('id=form-employee-select-province'); // await page.waitForSelector('id=form-employee-select-province_0'); // await page.click('id=form-employee-select-province_0'); // await page.click("(//button[@id='btn-info-health-save'])[2]"); // // ตรวจสอบหลังจากทำการบันทึกข้อมูลสุขภาพ // const formSaveHelath = page.locator('id=form-employee-checkup-0'); // await expect(formSaveHelath).toBeVisible; // //-------------------------------------เข้าหน้าแท็ปข้อมูลการทำงาน------------------------------------- // await page.waitForSelector('id=dialog-tab-ข้อมูลการทำงาน'); // await page.click('id=dialog-tab-ข้อมูลการทำงาน'); // await page.fill("(//input[@id='form-employee-input-owner-name'])[1]",fakerTH.person.fullName()) // await page.click("id=form-employee-select-province") // await page.waitForSelector("id=form-employee-select-province_0") // await page.click("id=form-employee-select-province_0") // await page.click("id=form-employee-select-job-type") // await page.waitForSelector("id=form-employee-select-job-type_0") // await page.click("id=form-employee-select-job-type_0") // await page.click("id=form-employee-select-position-name") // await page.waitForSelector("id=form-employee-select-position-name_0") // await page.click("id=form-employee-select-position-name_0") // await page.fill("(//input[@id='form-employee-input-owner-name'])[2]",'2022832028200') // await page.fill("(//input[@id='form-employee-input-owner-name'])[3]",'2202202930292') // await page.fill("(//input[@aria-label='สถานที่ออกใบอนุญาต'])[2]",'กรุงเทพ') // await page.click("(//button[@type='submit'])[2]") // // ตรวจสอบหลังจากทำการบันทึกข้อมูลการทำงาน // const formWorkSave = page.locator("") // //-------------------------------------เข้าหน้าแท็ปข้อมูลอื่นๆ----------------------------------------- // await page.waitForSelector('id=dialog-tab-ข้อมูลอื่นๆ'); // await page.click('id=dialog-tab-ข้อมูลอื่นๆ'); // await page.fill( // "(//input[@id='form-employee-input-citizen-id'])[1]", // '2201182726324', // ); // await page.fill( // "(//input[@id='form-employee-input-citizen-id'])[2]", // '0882262262', // ); // await page.fill('id=form-employee-input-father-first-name', firstNameTH); // await page.fill('id=form-employee-input-father-last-name', lastNameTH); // await page.fill('id=form-employee-input-father-first-name-en', firstNameEN); // await page.fill('id=form-employee-input-father-last-name-en', lastNameEN); // await page.fill('id=form-employee-input-mother-first-name', firstNameTH); // await page.fill('id=form-employee-input-mother-last-name', lastNameTH); // await page.fill('id=form-employee-input-mother-first-name-en', firstNameEN); // await page.fill('id=form-employee-input-mother-last-name-en', lastNameEN); // await page.waitForSelector("(//button[@id='btn-info-health-save'])[2]"); // await page.click("(//button[@id='btn-info-health-save'])[2]"); // const formEmployeeSave = page.locator('id=form-employee-other'); // await expect(formEmployeeSave).toBeVisible; // } catch (error) { // console.error('เกิดข้อผิดพลาดในการทดสอบ', error); // isLoginSuccessful = false; // throw error; // } // await page.waitForTimeout(2000); // console.log('ระบบทำการบันทึกข้อมูลส่วนข้อมูลอื่นๆ'); // }); test('TC_2_4_021', async () => { if (!isLoginSuccessful) { await login(page); } try { // สร้างค่าชื่อบริษัทที่เหมือนกันทั้งภาษาไทยและอังกฤษ const firstNameTH = fakerTH.person.firstName('male'); const middleNameTH = fakerTH.person.middleName(); const lastNameTH = fakerTH.person.lastName(); const firstNameEN = fakerEN.person.firstName(); const middleNameEN = fakerEN.person.middleName(); const lastNameEN = fakerEN.person.firstName(); // เข้าสู่เมนูลูกค้า await page.click('id=menu.manage'); await page.waitForSelector('id=sub-menu-customer'); await page.click('id=sub-menu-customer'); // เข้าแท็ปลูกจ้างเพื่อทำการเพิ่มลูกจ้าง await page.waitForSelector('id=tab-employee'); await page.click('id=tab-employee'); await page.waitForSelector('id=btn-add'); await page.click('id=btn-add'); // ส่วนข้อมูลพื้นฐาน await page.click('id=form-employee-select-employer-branch'); await page.waitForSelector('id=form-employee-select-employer-branch_0'); await page.click('id=form-employee-select-employer-branch_0'); await page.fill('id=form-employee-input-nrc-no', '1223423112342'); // ส่วนข้อมูลส่วนตัว await page.click('id=form-employee-select-prefix-name'); await page.waitForSelector('id=form-employee-select-prefix-name_0'); await page.click('id=form-employee-select-prefix-name_0'); await page.fill( "(//input[@id='form-employee-input-first-name'])[1]", firstNameTH, ); await page.fill('id=form-employee-input-last-name', lastNameTH); await page.fill('id=form-employee-input-first-name-en', firstNameEN); await page.fill('id=form-employee-input-last-name-en', lastNameEN); // วันเดิิอนปีเกิด await page.click('id=form-employee-input-birth-date'); await page.waitForSelector( "(//button[@class='dp__btn dp__month_year_select'])[2]", ); await page.click("(//button[@class='dp__btn dp__month_year_select'])[2]"); await page.click("//div[text()='1996']"); await page.click("(//button[@class='dp__btn dp__month_year_select'])[1]"); await page.click("//div[text()='พ.ค.']"); await page.click("//div[@id='1996-05-02']/div[1]"); // สัญชาติ await page.click('id=form-employee-select-nationality'); await page.waitForSelector('id=form-employee-select-nationality_2'); await page.click('id=form-employee-select-nationality_2'); await page.click('id=btn-info-basic-save'); await page.waitForTimeout(2000); const showTabPassport = page.locator( 'id=dialog-tab-ข้อมูลหนังสือการเดินทาง', ); const showTabVisa = page.locator('id=dialog-tab-ข้อมูล Visa'); const showTabHealthDetail = page.locator('id=dialog-tab-ข้อมูลสุขภาพ'); const showTabJobDetail = page.locator('id=dialog-tab-ข้อมูลการทำงาน'); const showTabMore = page.locator('id=dialog-tab-ข้อมูลอื่นๆ'); await expect(showTabPassport).toBeVisible; await expect(showTabVisa).toBeVisible; await expect(showTabHealthDetail).toBeVisible; await expect(showTabJobDetail).toBeVisible; await expect(showTabMore).toBeVisible; } catch (error) { console.error('เกิดข้อผิดพลาดในการทดสอบ', error); isLoginSuccessful = false; throw error; } await page.waitForTimeout(2000); console.log('ระบบทำการสร้างลูกจ้างได้'); }); test('TC_2_4_022', async () => { if (!isLoginSuccessful) { await login(page); } try { // สร้างค่าชื่อบริษัทที่เหมือนกันทั้งภาษาไทยและอังกฤษ const firstNameTH = fakerTH.person.firstName('male'); const middleNameTH = fakerTH.person.middleName(); const lastNameTH = fakerTH.person.lastName(); const firstNameEN = fakerEN.person.firstName(); const middleNameEN = fakerEN.person.middleName(); const lastNameEN = fakerEN.person.firstName(); // เข้าสู่เมนูลูกค้า await page.click('id=menu.manage'); await page.waitForSelector('id=sub-menu-customer'); await page.click('id=sub-menu-customer'); // เข้าแท็ปลูกจ้างเพื่อทำการเพิ่มลูกจ้าง await page.waitForSelector('id=tab-employee'); await page.click('id=tab-employee'); await page.waitForSelector('id=btn-add'); await page.click('id=btn-add'); // ส่วนข้อมูลพื้นฐาน await page.click('id=form-employee-select-employer-branch'); await page.waitForSelector('id=form-employee-select-employer-branch_0'); await page.click('id=form-employee-select-employer-branch_0'); await page.fill('id=form-employee-input-nrc-no', '1223423112342'); // ส่วนข้อมูลส่วนตัว await page.click('id=form-employee-select-prefix-name'); await page.waitForSelector('id=form-employee-select-prefix-name_0'); await page.click('id=form-employee-select-prefix-name_0'); await page.fill( "(//input[@id='form-employee-input-first-name'])[1]", firstNameTH, ); await page.fill('id=form-employee-input-last-name', lastNameTH); await page.fill('id=form-employee-input-first-name-en', firstNameEN); await page.fill('id=form-employee-input-last-name-en', lastNameEN); // วันเดิิอนปีเกิด await page.click('id=form-employee-input-birth-date'); await page.waitForSelector( "(//button[@class='dp__btn dp__month_year_select'])[2]", ); await page.click("(//button[@class='dp__btn dp__month_year_select'])[2]"); await page.click("//div[text()='1996']"); await page.click("(//button[@class='dp__btn dp__month_year_select'])[1]"); await page.click("//div[text()='พ.ค.']"); await page.click("//div[@id='1996-05-02']/div[1]"); // สัญชาติ await page.click('id=form-employee-select-nationality'); await page.waitForSelector('id=form-employee-select-nationality_2'); await page.click('id=form-employee-select-nationality_2'); // ส่วนข้อมูลที่อยู่ await page.click('id=form-employee-custom'); await page.fill('id=form-employee-input-address-no', '200/20'); await page.fill("(//input[@id='form-employee-input-moo'])[1]", '2'); await page.fill("(//input[@id='form-employee-input-soi'])[1]", '20'); await page.fill( "(//input[@id='form-employee-input-street'])[1]", 'สุขุมวิท', ); await page.click('id=form-employee-select-province'); await page.waitForSelector('id=form-employee-select-province_0'); await page.click('id=form-employee-select-province_0'); await page.click('id=form-employee-select-district'); await page.waitForSelector('id=form-employee-select-district_0'); await page.click('id=form-employee-select-district_0'); await page.click('id=form-employee-select-sub-district'); await page.waitForSelector('id=form-employee-select-sub-district_0'); await page.click('id=form-employee-select-sub-district_0'); await page.fill('id=form-employee-input-address-en', '200/20'); await page.fill("(//input[@id='form-employee-input-moo'])[2]", '2'); await page.fill("(//input[@id='form-employee-input-soi'])[2]", '20'); await page.fill( "(//input[@id='form-employee-input-street'])[2]", 'Sukumvit', ); await page.click('id=btn-info-basic-save'); await page.waitForTimeout(2000); await page.waitForSelector('id=btn-form-close'); await page.click('id=btn-form-close'); await page.waitForTimeout(2000); // ตรวจสอบหลังจากบันทึก const checkEmployeeCreate = page.locator( `//td[contains(.,'${firstNameEN}') and contains(.,'${lastNameEN}') and contains(.,'${firstNameTH}') and contains(.,'${lastNameTH}')]`, ); await expect(checkEmployeeCreate).toBeVisible; } catch (error) { console.error('เกิดข้อผิดพลาดในการทดสอบ', error); isLoginSuccessful = false; throw error; } await page.waitForTimeout(2000); console.log('ระบบทำการสร้างลูกจ้างได้'); }); test('TC_2_4_023', async () => { if (!isLoginSuccessful) { await login(page); } try { // สร้างค่าชื่อบริษัทที่เหมือนกันทั้งภาษาไทยและอังกฤษ const firstNameTH = fakerTH.person.firstName('male'); const middleNameTH = fakerTH.person.middleName(); const lastNameTH = fakerTH.person.lastName(); const firstNameEN = fakerEN.person.firstName(); const middleNameEN = fakerEN.person.middleName(); const lastNameEN = fakerEN.person.firstName(); // เข้าสู่เมนูลูกค้า await page.click('id=menu.manage'); await page.waitForSelector('id=sub-menu-customer'); await page.click('id=sub-menu-customer'); // เข้าแท็ปลูกจ้างเพื่อทำการเพิ่มลูกจ้าง await page.waitForSelector('id=tab-employee'); await page.click('id=tab-employee'); await page.waitForSelector('id=btn-add'); await page.click('id=btn-add'); // ส่วนข้อมูลพื้นฐาน await page.click('id=form-employee-select-employer-branch'); await page.waitForSelector('id=form-employee-select-employer-branch_0'); await page.click('id=form-employee-select-employer-branch_0'); await page.fill('id=form-employee-input-nrc-no', '1223423112342'); // ส่วนข้อมูลส่วนตัว await page.click('id=form-employee-select-prefix-name'); await page.waitForSelector('id=form-employee-select-prefix-name_0'); await page.click('id=form-employee-select-prefix-name_0'); await page.fill( "(//input[@id='form-employee-input-first-name'])[1]", firstNameTH, ); await page.fill('id=form-employee-input-last-name', lastNameTH); await page.fill('id=form-employee-input-first-name-en', firstNameEN); await page.fill('id=form-employee-input-last-name-en', lastNameEN); // วันเดิิอนปีเกิด await page.click('id=form-employee-input-birth-date'); await page.waitForSelector( "(//button[@class='dp__btn dp__month_year_select'])[2]", ); await page.click("(//button[@class='dp__btn dp__month_year_select'])[2]"); await page.click("//div[text()='1996']"); await page.click("(//button[@class='dp__btn dp__month_year_select'])[1]"); await page.click("//div[text()='พ.ค.']"); await page.click("//div[@id='1996-05-02']/div[1]"); // สัญชาติ await page.click('id=form-employee-select-nationality'); await page.waitForSelector('id=form-employee-select-nationality_2'); await page.click('id=form-employee-select-nationality_2'); // ส่วนข้อมูลที่อยู่ await page.click('id=form-employee-custom'); await page.fill('id=form-employee-input-address-no', '200/20'); await page.fill("(//input[@id='form-employee-input-moo'])[1]", '2'); await page.fill("(//input[@id='form-employee-input-soi'])[1]", '20'); await page.fill( "(//input[@id='form-employee-input-street'])[1]", 'สุขุมวิท', ); await page.click('id=form-employee-select-province'); await page.waitForSelector('id=form-employee-select-province_0'); await page.click('id=form-employee-select-province_0'); await page.click('id=form-employee-select-district'); await page.waitForSelector('id=form-employee-select-district_0'); await page.click('id=form-employee-select-district_0'); await page.click('id=form-employee-select-sub-district'); await page.waitForSelector('id=form-employee-select-sub-district_0'); await page.click('id=form-employee-select-sub-district_0'); await page.fill('id=form-employee-input-address-en', '200/20'); await page.fill("(//input[@id='form-employee-input-moo'])[2]", '2'); await page.fill("(//input[@id='form-employee-input-soi'])[2]", '20'); await page.fill( "(//input[@id='form-employee-input-street'])[2]", 'Sukumvit', ); await page.click('id=btn-info-basic-save'); await page.waitForTimeout(2000); await page.waitForSelector('id=btn-form-close'); await page.click('id=btn-form-close'); await page.waitForTimeout(2000); // ตรวจสอบหลังจากบันทึก const checkEmployeeCreate = page.locator( `//tr[contains(.,'${firstNameEN} ${lastNameEN}') and contains (.,'${firstNameTH} ${lastNameTH}')]`, ); await expect(checkEmployeeCreate).toBeVisible; await expect(checkEmployeeCreate).toBeVisible; } catch (error) { console.error('เกิดข้อผิดพลาดในการทดสอบ', error); isLoginSuccessful = false; throw error; } await page.waitForTimeout(2000); console.log('ระบบแสดงข้อมูลลูกจ้างหลังสร้างถูกต้อง'); }); test('TC_2_4_024', async () => { if (!isLoginSuccessful) { await login(page); } try { // สร้างค่าชื่อบริษัทที่เหมือนกันทั้งภาษาไทยและอังกฤษ const firstNameTH = fakerTH.person.firstName('male'); const middleNameTH = fakerTH.person.middleName(); const lastNameTH = fakerTH.person.lastName(); const firstNameEN = fakerEN.person.firstName(); const middleNameEN = fakerEN.person.middleName(); const lastNameEN = fakerEN.person.firstName(); // เข้าสู่เมนูลูกค้า await page.click('id=menu.manage'); await page.waitForSelector('id=sub-menu-customer'); await page.click('id=sub-menu-customer'); // เข้าแท็ปลูกจ้างเพื่อทำการเพิ่มลูกจ้าง await page.waitForSelector('id=tab-employee'); await page.click('id=tab-employee'); await page.waitForSelector('id=btn-add'); await page.click('id=btn-add'); // ส่วนข้อมูลพื้นฐาน await page.click('id=form-employee-select-employer-branch'); await page.waitForSelector('id=form-employee-select-employer-branch_0'); await page.click('id=form-employee-select-employer-branch_0'); await page.fill('id=form-employee-input-nrc-no', '1223423112342'); // ส่วนข้อมูลส่วนตัว await page.click('id=form-employee-select-prefix-name'); await page.waitForSelector('id=form-employee-select-prefix-name_0'); await page.click('id=form-employee-select-prefix-name_0'); await page.fill( "(//input[@id='form-employee-input-first-name'])[1]", firstNameTH, ); await page.fill('id=form-employee-input-last-name', lastNameTH); await page.fill('id=form-employee-input-first-name-en', firstNameEN); await page.fill('id=form-employee-input-last-name-en', lastNameEN); // วันเดิิอนปีเกิด await page.click('id=form-employee-input-birth-date'); await page.waitForSelector( "(//button[@class='dp__btn dp__month_year_select'])[2]", ); await page.click("(//button[@class='dp__btn dp__month_year_select'])[2]"); await page.click("//div[text()='1996']"); await page.click("(//button[@class='dp__btn dp__month_year_select'])[1]"); await page.click("//div[text()='พ.ค.']"); await page.click("//div[@id='1996-05-02']/div[1]"); // สัญชาติ await page.click('id=form-employee-select-nationality'); await page.waitForSelector('id=form-employee-select-nationality_2'); await page.click('id=form-employee-select-nationality_2'); await page.click('id=btn-info-basic-save'); await page.waitForTimeout(2000); await page.waitForSelector('id=btn-form-close'); await page.click('id=btn-form-close'); // ----------------------------------------- การทำ Inactive ลูกจ้าง ----------------------------------------- const kebabAction = page.locator(`id=btn-kebab-action-${firstNameTH}`); await kebabAction.waitFor(); await kebabAction.click(); const kebabStatus = page .locator(`id=btn-kebab-status-${firstNameTH}`) .nth(0); await kebabStatus.click({ force: true }); const okDialog = page.locator('id=btn-ok-dialog'); await okDialog.click(); console.log('✅ เปลี่ยนสถานะเป็น Inactive สำเร็จ'); // ตรวจสอบสีของแถวหลังจากเปลี่ยนเป็น Inactive const rowLocator = page.locator( `//div[normalize-space(text())='${firstNameTH} ${lastNameTH}']`, ); await expect(rowLocator).toHaveCSS('background-color', 'rgba(0, 0, 0, 0)'); console.log('✅ สีของแถวถูกเปลี่ยนเป็นสีเทาอ่อน'); // ---------------------------------------------- การทำ Active ลูกจ้าง ---------------------------------------- await kebabAction.waitFor(); await page.waitForTimeout(2000); await kebabAction.click(); await kebabStatus.click({ force: true }); await okDialog.click(); console.log('✅ เปลี่ยนสถานะเป็น Active สำเร็จ'); // ตรวจสอบสีของแถวหลังจากเปลี่ยนเป็น Active await expect(rowLocator).toHaveCSS('background-color', 'rgba(0, 0, 0, 0)'); console.log('✅ สีของแถวถูกเปลี่ยนเป็นสีขาว'); } catch (error) { console.error('เกิดข้อผิดพลาดในการทดสอบ', error); isLoginSuccessful = false; throw error; } await page.waitForTimeout(2000); console.log('ระบบสามารถทำการ Active/InActive ลูกจ้างได้'); }); test('TC_2_4_025', async () => { if (!isLoginSuccessful) { await login(page); } try { // สร้างค่าชื่อบริษัทที่เหมือนกันทั้งภาษาไทยและอังกฤษ const firstNameTH = fakerTH.person.firstName('male'); const middleNameTH = fakerTH.person.middleName(); const lastNameTH = fakerTH.person.lastName(); const firstNameEN = fakerEN.person.firstName(); const middleNameEN = fakerEN.person.middleName(); const lastNameEN = fakerEN.person.firstName(); // เข้าสู่เมนูลูกค้า await page.click('id=menu.manage'); await page.waitForSelector('id=sub-menu-customer'); await page.click('id=sub-menu-customer'); // เข้าแท็ปลูกจ้างเพื่อทำการเพิ่มลูกจ้าง await page.waitForSelector('id=tab-employee'); await page.click('id=tab-employee'); await page.waitForSelector('id=btn-add'); await page.click('id=btn-add'); // ส่วนข้อมูลพื้นฐาน await page.click('id=form-employee-select-employer-branch'); await page.waitForSelector('id=form-employee-select-employer-branch_0'); await page.click('id=form-employee-select-employer-branch_0'); await page.fill('id=form-employee-input-nrc-no', '1223423112342'); // ส่วนข้อมูลส่วนตัว await page.click('id=form-employee-select-prefix-name'); await page.waitForSelector('id=form-employee-select-prefix-name_0'); await page.click('id=form-employee-select-prefix-name_0'); await page.fill( "(//input[@id='form-employee-input-first-name'])[1]", firstNameTH, ); await page.fill('id=form-employee-input-last-name', lastNameTH); await page.fill('id=form-employee-input-first-name-en', firstNameEN); await page.fill('id=form-employee-input-last-name-en', lastNameEN); // วันเดิิอนปีเกิด await page.click('id=form-employee-input-birth-date'); await page.waitForSelector( "(//button[@class='dp__btn dp__month_year_select'])[2]", ); await page.click("(//button[@class='dp__btn dp__month_year_select'])[2]"); await page.click("//div[text()='1996']"); await page.click("(//button[@class='dp__btn dp__month_year_select'])[1]"); await page.click("//div[text()='พ.ค.']"); await page.click("//div[@id='1996-05-02']/div[1]"); // สัญชาติ await page.click('id=form-employee-select-nationality'); await page.waitForSelector('id=form-employee-select-nationality_2'); await page.click('id=form-employee-select-nationality_2'); await page.click('id=btn-info-basic-save'); await page.waitForTimeout(2000); await page.waitForSelector('id=btn-form-close'); await page.click('id=btn-form-close'); await page.waitForTimeout(2000); // การเปลี่ยนจำนวนในตารางจากแสดง 30 คน เป็น 1000 คน await page.click("//span[normalize-space(text())='30']"); await page.waitForSelector("//div[normalize-space(text())='1000']"); await page.click("//div[normalize-space(text())='1000']"); // การแก้ไขลูกจ้าง await page.waitForTimeout(2000); await page.click(`id=btn-kebab-action-${firstNameTH}`); await page.waitForSelector(`id=btn-kebab-edit-${firstNameTH}`); await page.click(`id=btn-kebab-edit-${firstNameTH}`); } catch (error) { console.error('เกิดข้อผิดพลาดในการทดสอบ', error); isLoginSuccessful = false; throw error; } await page.waitForTimeout(2000); console.log('ระบบแสดงหน้าแก้ไขลูกจ้าง'); }); test('TC_2_4_026', async () => { if (!isLoginSuccessful) { await login(page); } try { // สร้างค่าชื่อบริษัทที่เหมือนกันทั้งภาษาไทยและอังกฤษ const firstNameTH = fakerTH.person.firstName('male'); const middleNameTH = fakerTH.person.middleName(); const lastNameTH = fakerTH.person.lastName(); const firstNameEN = fakerEN.person.firstName(); const middleNameEN = fakerEN.person.middleName(); const lastNameEN = fakerEN.person.firstName(); // เข้าสู่เมนูลูกค้า await page.click('id=menu.manage'); await page.waitForSelector('id=sub-menu-customer'); await page.click('id=sub-menu-customer'); // เข้าแท็ปลูกจ้างเพื่อทำการเพิ่มลูกจ้าง await page.waitForSelector('id=tab-employee'); await page.click('id=tab-employee'); await page.waitForSelector('id=btn-add'); await page.click('id=btn-add'); // ส่วนข้อมูลพื้นฐาน await page.click('id=form-employee-select-employer-branch'); await page.waitForSelector('id=form-employee-select-employer-branch_0'); await page.click('id=form-employee-select-employer-branch_0'); await page.fill('id=form-employee-input-nrc-no', '1223423112342'); // ส่วนข้อมูลส่วนตัว await page.click('id=form-employee-select-prefix-name'); await page.waitForSelector('id=form-employee-select-prefix-name_0'); await page.click('id=form-employee-select-prefix-name_0'); await page.fill( "(//input[@id='form-employee-input-first-name'])[1]", firstNameTH, ); await page.fill('id=form-employee-input-last-name', lastNameTH); await page.fill('id=form-employee-input-first-name-en', firstNameEN); await page.fill('id=form-employee-input-last-name-en', lastNameEN); // วันเดิิอนปีเกิด await page.click('id=form-employee-input-birth-date'); await page.waitForSelector( "(//button[@class='dp__btn dp__month_year_select'])[2]", ); await page.click("(//button[@class='dp__btn dp__month_year_select'])[2]"); await page.click("//div[text()='1996']"); await page.click("(//button[@class='dp__btn dp__month_year_select'])[1]"); await page.click("//div[text()='พ.ค.']"); await page.click("//div[@id='1996-05-02']/div[1]"); // สัญชาติ await page.click('id=form-employee-select-nationality'); await page.waitForSelector('id=form-employee-select-nationality_2'); await page.click('id=form-employee-select-nationality_2'); await page.click('id=btn-info-basic-save'); await page.waitForTimeout(2000); await page.waitForSelector('id=btn-form-close'); await page.click('id=btn-form-close'); await page.waitForTimeout(2000); // การเปลี่ยนจำนวนในตารางจากแสดง 30 คน เป็น 1000 คน await page.click("//span[normalize-space(text())='30']"); await page.waitForSelector("//div[normalize-space(text())='1000']"); await page.click("//div[normalize-space(text())='1000']"); // การแก้ไขลูกจ้าง await page.waitForTimeout(2000); await page.click(`id=btn-kebab-action-${firstNameTH}`); await page.waitForSelector(`id=btn-kebab-edit-${firstNameTH}`); await page.click(`id=btn-kebab-edit-${firstNameTH}`); await page.fill( "(//input[@id='drawer-info-employee-input-first-name'])[1]", firstNameTH, ); await page.fill('id=drawer-info-employee-input-last-name', lastNameTH); await page.fill('id=drawer-info-employee-input-first-name-en', firstNameEN); await page.fill('id=drawer-info-employee-input-last-name-en', lastNameEN); await page.click('id=btn-info-basic-save'); await page.waitForSelector("(//button[@id='btn-info-close'])[2]"); await page.click("(//button[@id='btn-info-close'])[2]"); const checkEditSave = page.locator( ` //tr[contains(.,'${firstNameEN}') and contains (.,'${lastNameEN}') and contains (.,'${firstNameTH}') and contains (.,'${lastNameTH}')]`, ); await expect(checkEditSave).toBeVisible(); } catch (error) { console.error('เกิดข้อผิดพลาดในการทดสอบ', error); isLoginSuccessful = false; throw error; } await page.waitForTimeout(2000); console.log('ระบบสามารถแก้ไขลูกจ้างได้'); }); test('TC_2_4_027', async () => { if (!isLoginSuccessful) { await login(page); } try { // สร้างค่าชื่อบริษัทที่เหมือนกันทั้งภาษาไทยและอังกฤษ const firstNameTH = fakerTH.person.firstName('male'); const middleNameTH = fakerTH.person.middleName(); const lastNameTH = fakerTH.person.lastName(); const firstNameEN = fakerEN.person.firstName(); const middleNameEN = fakerEN.person.middleName(); const lastNameEN = fakerEN.person.firstName(); // เข้าสู่เมนูลูกค้า await page.click('id=menu.manage'); await page.waitForSelector('id=sub-menu-customer'); await page.click('id=sub-menu-customer'); // เข้าแท็ปลูกจ้างเพื่อทำการเพิ่มลูกจ้าง await page.waitForSelector('id=tab-employee'); await page.click('id=tab-employee'); await page.waitForSelector('id=btn-add'); await page.click('id=btn-add'); // ส่วนข้อมูลพื้นฐาน await page.click('id=form-employee-select-employer-branch'); await page.waitForSelector('id=form-employee-select-employer-branch_0'); await page.click('id=form-employee-select-employer-branch_0'); await page.fill('id=form-employee-input-nrc-no', '1223423112342'); // ส่วนข้อมูลส่วนตัว await page.click('id=form-employee-select-prefix-name'); await page.waitForSelector('id=form-employee-select-prefix-name_0'); await page.click('id=form-employee-select-prefix-name_0'); await page.fill( "(//input[@id='form-employee-input-first-name'])[1]", firstNameTH, ); await page.fill('id=form-employee-input-last-name', lastNameTH); await page.fill('id=form-employee-input-first-name-en', firstNameEN); await page.fill('id=form-employee-input-last-name-en', lastNameEN); // วันเดิิอนปีเกิด await page.click('id=form-employee-input-birth-date'); await page.waitForSelector( "(//button[@class='dp__btn dp__month_year_select'])[2]", ); await page.click("(//button[@class='dp__btn dp__month_year_select'])[2]"); await page.click("//div[text()='1996']"); await page.click("(//button[@class='dp__btn dp__month_year_select'])[1]"); await page.click("//div[text()='พ.ค.']"); await page.click("//div[@id='1996-05-02']/div[1]"); // สัญชาติ await page.click('id=form-employee-select-nationality'); await page.waitForSelector('id=form-employee-select-nationality_2'); await page.click('id=form-employee-select-nationality_2'); await page.click('id=btn-info-basic-save'); await page.waitForTimeout(2000); await page.waitForSelector('id=btn-form-close'); await page.click('id=btn-form-close'); await page.waitForTimeout(2000); // การเปลี่ยนจำนวนในตารางจากแสดง 30 คน เป็น 1000 คน await page.click("//span[normalize-space(text())='30']"); await page.waitForSelector("//div[normalize-space(text())='1000']"); await page.click("//div[normalize-space(text())='1000']"); // การแก้ไขลูกจ้าง await page.waitForTimeout(2000); await page.click(`id=btn-kebab-action-${firstNameTH}`); await page.waitForSelector(`id=btn-kebab-edit-${firstNameTH}`); await page.click(`id=btn-kebab-edit-${firstNameTH}`); await page.click( "(//div[@id='drawer-info-employee-select-employer-branch'])[1]", ); await page.waitForSelector( 'id=drawer-info-employee-select-employer-branch_1', ); await page.click('id=drawer-info-employee-select-employer-branch_1'); await page.click('id=btn-info-basic-save'); await page.waitForTimeout(2000); await page.waitForSelector("(//button[@id='btn-info-close'])[2]"); await page.click("(//button[@id='btn-info-close'])[2]"); const checkEditSave = page.locator( `//tr[contains(.,'${firstNameEN}') and contains (.,'บริษัท สยาม เอ็นเนอร์จี โซลูชั่น จำกัด')]`, ); await expect(checkEditSave).toContainText( 'บริษัท สยาม เอ็นเนอร์จี โซลูชั่น จำกัด', ); } catch (error) { console.error('เกิดข้อผิดพลาดในการทดสอบ', error); isLoginSuccessful = false; throw error; } await page.waitForTimeout(2000); console.log('ระบบสามารถแก้ไขนายจ้างในลูกจ้างได้'); });