jws-frontend/tests/01-Manage/MenuCustomer.spec.ts
Linpiing 272183bca9
Some checks failed
Spell Check / Spell Check with Typos (push) Failing after 6s
update
2025-05-22 09:26:31 +07:00

2332 lines
108 KiB
TypeScript

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('ระบบสามารถแก้ไขนายจ้างในลูกจ้างได้');
});