test : Create Script Role&Permission

This commit is contained in:
Linpiing 2024-09-18 17:52:25 +07:00
parent 5bc28bf893
commit 9254c0183e
67 changed files with 11224 additions and 729 deletions

View file

@ -0,0 +1,128 @@
import { test, expect, Page } from '@playwright/test';
import { strictEqual } from 'assert';
import exp from 'constants';
let page: Page;
test.beforeAll(async ({ browser }) => {
page = await browser.newPage();
});
test.afterAll(async () => {
if (page !== undefined) {
await page.close();
}
});
test('Login', async () => {
// Login
await page.goto('http://192.168.1.90:20001/');
await expect(page).toHaveTitle(/^Sign in to /);
await page.fill("input[name='username']", 'admin');
await page.fill("input[name='password']", '1234');
await page.click('id=kc-login');
await page.waitForTimeout(2000);
// await page.click('id=acceptBtn');
});
test('Create Personnel - ในกรณีที่ไม่กรอกข้อมูล', async () => {
await page.click('id=menu-icon-personnel-management');
await page.click('id=btn-add');
await page.click('id=btn-add-personne');
await page.click('id=btn-info-basic-save');
await page.waitForTimeout(2000);
const usernameError = page.locator("(//div[@role='alert'])[1]");
const userTypeError = page.locator("(//div[@role='alert'])[2]");
const userPermisionError = page.locator("(//div[@role='alert'])[3]");
const citizenIdError = page.locator("(//div[@role='alert'])[4]");
const firstNameError = page.locator("(//div[@role='alert'])[5]");
const lastNameError = page.locator("(//div[@role='alert'])[6]");
const firstNameEnError = page.locator("(//div[@role='alert'])[7]");
const lastNameEnError = page.locator("(//div[@role='alert'])[8]");
const brithDateError = page.locator("(//div[@role='alert'])[9]");
const citizenIdInError = page.locator("(//div[@role='alert'])[10]");
const addressError = page.locator("(//div[@role='alert'])[11]");
const provinceError = page.locator("(//div[@role='alert'])[12]");
const districtError = page.locator("(//div[@role='alert'])[13]");
const subDistrictErrorError = page.locator("(//div[@role='alert'])[14]");
const addressEnErrorError = page.locator("(//div[@role='alert'])[15]");
await expect(usernameError).toHaveText('จำเป็นต้องกรอกข้อมูลนี้');
await expect(userTypeError).toHaveText('โปรดเลือกประเภทผู้ใช้งาน');
await expect(userPermisionError).toHaveText('โปรดเลือกสิทธิ์ผู้ใช้งาน');
await expect(citizenIdError).toHaveText('จำเป็นต้องกรอกข้อมูลนี้');
await expect(firstNameError).toHaveText('จำเป็นต้องกรอกข้อมูลนี้');
await expect(lastNameError).toHaveText('จำเป็นต้องกรอกข้อมูลนี้');
await expect(firstNameEnError).toHaveText('จำเป็นต้องกรอกข้อมูลนี้');
await expect(lastNameEnError).toHaveText('จำเป็นต้องกรอกข้อมูลนี้');
await expect(brithDateError).toHaveText('โปรดเลือกวันเดือนปีเกิด');
await expect(citizenIdInError).toHaveText('โปรดเลือกวันที่ออกบัตร');
await expect(addressError).toHaveText('จำเป็นต้องกรอกข้อมูลนี้');
await expect(provinceError).toHaveText('โปรดเลือกจังหวัด');
await expect(districtError).toHaveText('โปรดเลือกอำเภอ');
await expect(subDistrictErrorError).toHaveText('โปรดเลือกตำบล');
await expect(addressEnErrorError).toHaveText('จำเป็นต้องกรอกข้อมูลนี้');
await page.waitForTimeout(2000);
await page.click('id=btn-form-close');
console.log('การตรวจสอบการทำงานถูกต้อง');
});
test('Create Personnel - ในกรณีที่กรอกชื่อผู้ใช้งานที่ไม่ตรงกับตัวอักษรที่กำหนด', async () => {
await page.click('id=btn-add');
await page.click('id=btn-add-personne');
// กรอกชื่อผู้ใช้งาน
await page.fill('id=input-username', 'ทดสอบ');
const usernameError = page.locator("(//div[@role='alert'])[1]");
await expect(usernameError).toHaveText(
'โปรดใช้เฉพาะตัวอักษรภาษาอังกฤษและตัวเลขเท่านั้น',
);
await page.waitForTimeout(2000);
await page.click('id=btn-form-close');
console.log('การตรวจสอบการทำงานถูกต้อง');
});
test('Create Personnel - ในกรณีที่กรอกชื่อและนามสกุลภาษาอังกฤษไม่ตรงตามรูปแบบ', async () => {
await page.click('id=btn-add');
await page.click('id=btn-add-personne');
// กรอกชื่อผู้ใช้งาน
await page.fill('id=form-dialog-personnel-input-first-name-en', 'ทดสอบ');
await page.fill('id=form-dialog-personnel-input-last-name-en', 'ทดสอบ');
const firstNameEnError = page.locator("(//div[@role='alert'])[1]");
const lastNameEnError = page.locator("(//div[@role='alert'])[2]");
await expect(firstNameEnError).toHaveText(
'โปรดใช้เฉพาะตัวอักษรภาษาอังกฤษเท่านั้น',
);
await expect(lastNameEnError).toHaveText(
'โปรดใช้เฉพาะตัวอักษรภาษาอังกฤษเท่านั้น',
);
await page.waitForTimeout(2000);
await page.click('id=btn-form-close');
console.log('การตรวจสอบการทำงานถูกต้อง');
});
test('Create Personnel - ในกรณีที่กรอกอีเมลไม่ตรงรูปแบบ', async () => {
await page.click('id=menu-icon-personnel-management');
await page.click('id=btn-add');
await page.click('id=btn-add-personne');
// กรอกชื่อผู้ใช้งาน
await page.fill('id=form-dialog-personnel-input-email', 'ทดสอบ');
const firstNameEnError = page.locator("(//div[@role='alert'])[1]");
await expect(firstNameEnError).toHaveText('ข้อมูลไม่ถูกต้อง');
await page.waitForTimeout(2000);
await page.click('id=btn-form-close');
console.log('การตรวจสอบการทำงานถูกต้อง');
});

View file

@ -1,32 +0,0 @@
import { test, expect, Page } from '@playwright/test';
import { strictEqual } from 'assert';
let page: Page;
test.beforeAll(async ({ browser }) => {
page = await browser.newPage();
});
test.afterAll(async () => {
if (page !== undefined) {
await page.close();
}
});
test('Login', async () => {
// Login
await page.goto('http://192.168.1.90:20001/');
await expect(page).toHaveTitle(/^Sign in to /);
await page.fill("input[name='username']", 'admin');
await page.fill("input[name='password']", '1234');
await page.click('id=kc-login');
await page.waitForTimeout(2000);
// await page.click('id=acceptBtn');
});
test('View Deatil Personnel', async () => {
await page.click('id=menu-icon-personnel-management');
await page.click("(//div[@class='full-width text-right']//button)[1]");
await page.click("(//div[@class='q-focus-helper']/following-sibling::i)[1]");
await page.waitForTimeout(4000);
});

View file

@ -1,32 +0,0 @@
import { test, expect, Page } from '@playwright/test';
import { strictEqual } from 'assert';
let page: Page;
test.beforeAll(async ({ browser }) => {
page = await browser.newPage();
});
test.afterAll(async () => {
if (page !== undefined) {
await page.close();
}
});
test('Login', async () => {
// Login
await page.goto('http://192.168.1.90:20001/');
await expect(page).toHaveTitle(/^Sign in to /);
await page.fill("input[name='username']", 'admin');
await page.fill("input[name='password']", '1234');
await page.click('id=kc-login');
await page.waitForTimeout(2000);
// await page.click('id=acceptBtn');
});
test('Edit Personnel', async () => {
await page.click('id=menu-icon-personnel-management');
await page.click("(//div[@class='full-width text-right']//button)[1]");
await page.click("(//div[@class='q-focus-helper']/following-sibling::i)[2]");
await page.waitForTimeout(2000);
});

View file

@ -0,0 +1,109 @@
import { test, expect, Page } from '@playwright/test';
import { strictEqual } from 'assert';
let page: Page;
test.beforeAll(async ({ browser }) => {
page = await browser.newPage();
});
test.afterAll(async () => {
if (page !== undefined) {
await page.close();
}
});
test('Login', async () => {
// Login
await page.goto('http://192.168.1.90:20001/');
await expect(page).toHaveTitle(/^Sign in to /);
await page.fill("input[name='username']", 'admin');
await page.fill("input[name='password']", '1234');
await page.click('id=kc-login');
await page.waitForTimeout(2000);
// await page.click('id=acceptBtn');
});
test('View Deatil Personnel Employee', async () => {
await page.click('id=menu-icon-personnel-management');
await page.click("(//div[@role='tab'])[2]");
try {
await page.waitForSelector('id=btn-kebab-action-employeem', {
state: 'visible',
});
await page.click('id=btn-kebab-action-employeem');
await page.click('id=btn-kebab-view-detail-employeem');
const detailTitle = page.locator("//span[text()='ธรรมรงด์ ดำรงธรรม']");
await expect(detailTitle).toHaveText('ธรรมรงด์ ดำรงธรรม');
console.log('ตรวจสอบรายละเอียดพนักงานถูกต้อง');
} catch (error) {
console.log('เกิดข้อผิดพลาดในการทดสอบ');
throw error;
}
await page.waitForTimeout(2000);
await page.click('id=btn-info-close');
});
test('View Deatil Personnel Courier', async () => {
try {
await page.click("(//div[@role='tab'])[3]");
await page.click('id=btn-kebab-action-courierw');
await page.click('id=btn-kebab-view-detail-courierw');
const detailTitle = page.locator("//span[text()='มาตา ลดา']");
await expect(detailTitle).toHaveText('มาตา ลดา');
console.log('ตรวจสอบรายละเอียดพนักงานส่งเอกสารถูกต้อง');
} catch (error) {
console.log('เกิดข้อผิดพลาดในการทดสอบ');
throw error;
}
await page.waitForTimeout(2000);
await page.click('id=btn-info-close');
});
test('View Deatil Personnel Delegate', async () => {
try {
await page.click("(//div[@role='tab'])[4]");
await page.click('id=btn-kebab-action-delegatem');
await page.click('id=btn-kebab-view-detail-delegatem');
const detailTitle = page.locator("//span[text()='อาคม พลัง']");
await expect(detailTitle).toHaveText('อาคม พลัง');
console.log('ตรวจสอบรายละเอียดตัวแทนถูกต้อง');
} catch (error) {
console.log('เกิดข้อผิดพลาดในการทดสอบ');
throw error;
}
await page.waitForTimeout(2000);
await page.click('id=btn-info-close');
});
test('View Deatil Personnel Agency', async () => {
try {
await page.click("(//div[@role='tab'])[5]");
await page.click('id=btn-kebab-action-agencyw');
await page.waitForSelector('id=btn-kebab-view-detail-agencyw', {
state: 'visible',
});
await page.click('id=btn-kebab-view-detail-agencyw');
const detailTitle = await page.locator("//span[text()='ธิดา งามตา']");
await expect(detailTitle).toHaveText('ธิดา งามตา');
console.log('ตรวจสอบรายละเอียดเอเจนซี่ถูกต้อง');
} catch (error) {
console.log('เกิดข้อผิดพลาดในการทดสอบ');
throw error;
}
await page.waitForTimeout(2000);
await page.click('id=btn-info-close');
});

View file

@ -0,0 +1,243 @@
import { test, expect, Page } from '@playwright/test';
import { strictEqual } from 'assert';
import { exec } from 'child_process';
import { log } from 'console';
import { writeFileSync } from 'fs';
let page: Page;
test.beforeAll(async ({ browser }) => {
page = await browser.newPage();
});
test.afterAll(async () => {
if (page !== undefined) {
await page.close();
}
});
test('Login', async () => {
// Login
await page.goto('http://192.168.1.90:20001/');
await expect(page).toHaveTitle(/^Sign in to /);
await page.fill("input[name='username']", 'admin');
await page.fill("input[name='password']", '1234');
await page.click('id=kc-login');
await page.waitForTimeout(2000);
// await page.click('id=acceptBtn');
});
test('Edit Personnel - พนักงาน', async () => {
await page.click('id=menu-icon-personnel-management');
try {
// เข้าสู่หน้าแก้ไขพนักงาน
await page.click("(//div[@role='tab'])[2]");
await page.waitForSelector('id=btn-kebab-action-employeem', {
state: 'visible',
});
await page.click('id=btn-kebab-action-employeem');
// ตรวจสอบการคลิกว่าได้มีการคลิกหรือการแสดงจริงหรือไม่
// const isElementVisible = await page.isVisible(
// 'id=btn-kebab-edit-employeem',
// );
// console.log('Element visibility:', isElementVisible);
await page.click('id=btn-kebab-edit-employeem');
// แก้ไขข้อมูล
await page.fill('id=drawer-info-personnel-input-first-name', 'อานน');
await page.fill('id=drawer-info-personnel-input-last-name', 'รักมาก');
await page.fill('id=drawer-info-personnel-input-first-name-en', 'Arnon');
await page.fill('id=drawer-info-personnel-input-last-name-en', 'Rakmak');
await page.click('id=btn-info-basic-save'); // คลิกปุ่มบันทึก
// ตรวจสอบหลังแก้ไขเสร็จ
await page.waitForSelector('id=btn-kebab-action-employeem', {
state: 'visible',
});
await page.click('id=btn-kebab-action-employeem');
await page.waitForSelector('id=btn-kebab-view-detail-employeem', {
state: 'visible',
});
await page.click('id=btn-kebab-view-detail-employeem');
// ตรวจสอบข้อมูลว่าทำการแก้ไขถูกหรือไม่
const detailEditFistName = await page.inputValue("//input[@value='อานน']");
const detailEditLastName = await page.inputValue(
"//input[@value='รักมาก']",
);
const detailEditFistNameEn = await page.inputValue(
"//input[@value='Arnon']",
);
const detailEditLastNameEn = await page.inputValue(
"//input[@value='Rakmak']",
);
await expect(detailEditFistName).toBe('อานน');
await expect(detailEditLastName).toBe('รักมาก');
await expect(detailEditFistNameEn).toBe('Arnon');
await expect(detailEditLastNameEn).toBe('Rakmak');
console.log('ตรวจสอบการแก้ไขข้อมูลพนักงานถูกต้อง');
} catch (error) {
console.log('เกิดข้อผิดพลาดในการทดสอบแก้ไขบุคลากร');
throw error;
}
await page.waitForTimeout(4000);
await page.click('id=btn-info-close');
});
test('Edit Personnel - พนักงานส่งเอกสาร', async () => {
try {
// เข้าสู่หน้าแก้ไขพนักงาน
await page.click("(//div[@role='tab'])[3]");
await page.click('id=btn-kebab-action-courierw');
await page.click('id=btn-kebab-edit-courierw');
// แก้ไขข้อมูล
await page.fill('id=drawer-info-personnel-input-first-name', 'ลาดา');
await page.fill('id=drawer-info-personnel-input-last-name', 'มดา');
await page.fill('id=drawer-info-personnel-input-first-name-en', 'Lada');
await page.fill('id=drawer-info-personnel-input-last-name-en', 'Mada');
await page.click('id=btn-info-basic-save'); // คลิกปุ่มบันทึก
// ตรวจสอบหลังแก้ไขเสร็จ
await page.waitForSelector('id=btn-kebab-action-courierw', {
state: 'visible',
});
await page.click('id=btn-kebab-action-courierw');
await page.waitForSelector('id=btn-kebab-view-detail-courierw', {
state: 'visible',
});
await page.click('id=btn-kebab-view-detail-courierw');
// ตรวจสอบข้อมูลว่าทำการแก้ไขถูกหรือไม่
const detailEditFistName = await page.inputValue("//input[@value='ลาดา']");
const detailEditLastName = await page.inputValue("//input[@value='มดา']");
const detailEditFistNameEn = await page.inputValue(
"//input[@value='Lada']",
);
const detailEditLastNameEn = await page.inputValue(
"//input[@value='Mada']",
);
await expect(detailEditFistName).toBe('ลาดา');
await expect(detailEditLastName).toBe('มดา');
await expect(detailEditFistNameEn).toBe('Lada');
await expect(detailEditLastNameEn).toBe('Mada');
console.log('ตรวจสอบการแก้ไขข้อมูลพนักงานส่งเอกสารถูกต้อง');
} catch (error) {
console.log('เกิดข้อผิดพลาดในการทดสอบแก้ไขบุคลากร');
throw error;
}
await page.waitForTimeout(4000);
await page.click('id=btn-info-close');
});
test('Edit Personnel - ตัวแทน', async () => {
try {
// เข้าสู่หน้าแก้ไขพนักงาน
await page.click("(//div[@role='tab'])[4]");
await page.click('id=btn-kebab-action-delegatem');
await page.click('id=btn-kebab-edit-delegatem');
// แก้ไขข้อมูล
await page.fill('id=drawer-info-personnel-input-first-name', 'ธนกร');
await page.fill('id=drawer-info-personnel-input-last-name', 'ลอยฟ้า');
await page.fill(
'id=drawer-info-personnel-input-first-name-en',
'Thanakorn',
);
await page.fill('id=drawer-info-personnel-input-last-name-en', 'Loifa');
await page.click('id=btn-info-basic-save'); // คลิกปุ่มบันทึก
// ตรวจสอบหลังแก้ไขเสร็จ
await page.waitForSelector('id=btn-kebab-action-delegatem', {
state: 'visible',
});
await page.click('id=btn-kebab-action-delegatem');
await page.waitForSelector('id=btn-kebab-view-detail-delegatem', {
state: 'visible',
});
await page.click('id=btn-kebab-view-detail-delegatem');
// ตรวจสอบข้อมูลว่าทำการแก้ไขถูกหรือไม่
const detailEditFistName = await page.inputValue("//input[@value='ธนกร']");
const detailEditLastName = await page.inputValue(
"//input[@value='ลอยฟ้า']",
);
const detailEditFistNameEn = await page.inputValue(
"//input[@value='Thanakorn']",
);
const detailEditLastNameEn = await page.inputValue(
"//input[@value='Loifa']",
);
await expect(detailEditFistName).toBe('ธนกร');
await expect(detailEditLastName).toBe('ลอยฟ้า');
await expect(detailEditFistNameEn).toBe('Thanakorn');
await expect(detailEditLastNameEn).toBe('Loifa');
console.log('ตรวจสอบการแก้ไขข้อมูลตัวแทนถูกต้อง');
} catch (error) {
console.log('เกิดข้อผิดพลาดในการทดสอบแก้ไขบุคลากร');
throw error;
}
await page.waitForTimeout(4000);
await page.click('id=btn-info-close');
});
test('Edit Personnel - เอเจนซี่', async () => {
try {
// เข้าสู่หน้าแก้ไขพนักงาน
await page.click("(//div[@role='tab'])[5]");
await page.waitForTimeout(2000);
await page.waitForSelector('id=btn-kebab-action-agencyw', {
state: 'visible',
});
await page.click('id=btn-kebab-action-agencyw');
await page.click('id=btn-kebab-edit-agencyw');
// แก้ไขข้อมูล
await page.fill('id=drawer-info-personnel-input-first-name', 'นิดา');
await page.fill('id=drawer-info-personnel-input-last-name', 'อามา');
await page.fill('id=drawer-info-personnel-input-first-name-en', 'Nida');
await page.fill('id=drawer-info-personnel-input-last-name-en', 'Arma');
await page.click('id=btn-info-basic-save'); // คลิกปุ่มบันทึก
// ตรวจสอบหลังแก้ไขเสร็จ
await page.waitForSelector('id=btn-kebab-action-agencyw', {
state: 'visible',
});
await page.click('id=btn-kebab-action-agencyw');
await page.waitForSelector('id=btn-kebab-view-detail-agencyw', {
state: 'visible',
});
await page.click('id=btn-kebab-view-detail-agencyw');
// ตรวจสอบข้อมูลว่าทำการแก้ไขถูกหรือไม่
const detailEditFistName = await page.inputValue("//input[@value='นิดา']");
const detailEditLastName = await page.inputValue("//input[@value='อามา']");
const detailEditFistNameEn = await page.inputValue(
"//input[@value='Nida']",
);
const detailEditLastNameEn = await page.inputValue(
"//input[@value='Arma']",
);
await expect(detailEditFistName).toBe('นิดา');
await expect(detailEditLastName).toBe('อามา');
await expect(detailEditFistNameEn).toBe('Nida');
await expect(detailEditLastNameEn).toBe('Arma');
console.log('ตรวจสอบการแก้ไขข้อมูลเอเจนซี่ถูกต้อง');
} catch (error) {
console.log('เกิดข้อผิดพลาดในการทดสอบแก้ไขบุคลากร');
throw error;
}
await page.waitForTimeout(4000);
await page.click('id=btn-info-close');
});

View file

@ -1,39 +0,0 @@
import { test, expect, Page } from '@playwright/test';
import { strictEqual } from 'assert';
let page: Page;
test.beforeAll(async ({ browser }) => {
page = await browser.newPage();
});
test.afterAll(async () => {
if (page !== undefined) {
await page.close();
}
});
test('Login', async () => {
// Login
await page.goto('http://192.168.1.90:20001/');
await expect(page).toHaveTitle(/^Sign in to /);
await page.fill("input[name='username']", 'admin');
await page.fill("input[name='password']", '1234');
await page.click('id=kc-login');
await page.waitForTimeout(2000);
// await page.click('id=acceptBtn');
});
test('Status Close Personnel', async () => {
await page.click('id=menu-icon-personnel-management');
await page.click("(//div[@class='full-width text-right']//button)[1]");
await page.click("//div[contains(@class,'q-toggle__thumb absolute')]");
await page.keyboard.press('Escape');
await page.waitForTimeout(2000);
});
test('Status Open Personnel', async () => {
await page.click("(//div[@class='full-width text-right']//button)[1]");
await page.click("//div[contains(@class,'q-toggle__thumb absolute')]");
await page.waitForTimeout(2000);
});

View file

@ -0,0 +1,98 @@
import { test, expect, Page } from '@playwright/test';
import { strictEqual } from 'assert';
let page: Page;
test.beforeAll(async ({ browser }) => {
page = await browser.newPage();
});
test.afterAll(async () => {
if (page !== undefined) {
await page.close();
}
});
test('Login', async () => {
// Login
await page.goto('http://192.168.1.90:20001/');
await expect(page).toHaveTitle(/^Sign in to /);
await page.fill("input[name='username']", 'admin');
await page.fill("input[name='password']", '1234');
await page.click('id=kc-login');
await page.waitForTimeout(2000);
// await page.click('id=acceptBtn');
});
test('ปิดสถานะการใช้งานบุคลากร', async () => {
await page.click('id=menu-icon-personnel-management');
try {
await page.click('id=btn-kebab-action-employeem');
await page.click('id=btn-kebab-status-employeem', {
force: true,
});
await page.click('id=btn-ok-dialog');
console.log('เปลี่ยนสถานะสำเร็จ');
await page.reload();
// รอ Update
await page.waitForTimeout(2000);
console.log('สถานะถูกเปลี่ยนแล้ว');
// ตรวจสอบสีของแถวหลังจากทำการเปลี่ยนสถานะ
const rowLocator = page.locator(
"//div[normalize-space(text())='อานน รักมาก']",
);
const backgroundColor = await rowLocator.evaluate(
(el) => window.getComputedStyle(el).backgroundColor,
);
// กำหนดสีหลัเปลี่ยนสถานะการใช้งาน
const expectedColor = 'rgba(0, 0, 0, 0)';
// ตรวจสอบสีที่เปลี่ยนไป
expect(backgroundColor.trim()).toBe(expectedColor);
console.log('สีของแถวถูกเปลี่ยนเป็นสีเทาอ่อน');
} catch (error) {
console.error('เกิดข้อผิดพลาดในการทดสอบ');
throw error;
}
await page.waitForTimeout(2000);
});
test('เปิดสถานะการใช้งานบุคลากร', async () => {
try {
await page.click('id=btn-kebab-action-employeem');
await page.click('id=btn-kebab-status-employeem', {
force: true,
});
await page.click('id=btn-ok-dialog');
console.log('เปลี่ยนสถานะสำเร็จ');
await page.reload();
// รอ Update
await page.waitForTimeout(2000);
console.log('สถานะถูกเปลี่ยนแล้ว');
// ตรวจสอบสีของแถวหลังจากทำการเปลี่ยนสถานะ
const rowLocator = page.locator(
"//div[normalize-space(text())='อานน รักมาก']",
);
const backgroundColor = await rowLocator.evaluate(
(el) => window.getComputedStyle(el).backgroundColor,
);
// กำหนดสีหลัเปลี่ยนสถานะการใช้งาน
const expectedColor = 'rgba(0, 0, 0, 0)';
// ตรวจสอบสีที่เปลี่ยนไป
expect(backgroundColor.trim()).toBe(expectedColor);
console.log('สีของแถวถูกเปลี่ยนเป็นของสถานะการใช้งาน');
} catch (error) {
console.error('เกิดข้อผิดพลาดในการทดสอบ');
throw error;
}
await page.waitForTimeout(2000);
});

View file

@ -1,44 +0,0 @@
import { test, expect, Page } from '@playwright/test';
import { strictEqual } from 'assert';
let page: Page;
test.beforeAll(async ({ browser }) => {
page = await browser.newPage();
});
test.afterAll(async () => {
if (page !== undefined) {
await page.close();
}
});
test('Login', async () => {
// Login
await page.goto('http://192.168.1.90:20001/');
await expect(page).toHaveTitle(/^Sign in to /);
await page.fill("input[name='username']", 'admin');
await page.fill("input[name='password']", '1234');
await page.click('id=kc-login');
await page.waitForTimeout(2000);
// await page.click('id=acceptBtn');
});
test('Select Filter Status Active Personnel', async () => {
await page.click('id=menu-icon-personnel-management');
await page.click('id=btn-filter');
await page.click('id=btn-filter-active');
await page.waitForTimeout(2000);
});
test('Select Filter Status InActive Personnel', async () => {
await page.click('id=btn-filter');
await page.click('id=btn-filter-inactive');
await page.waitForTimeout(2000);
});
test('Select Filter Status All Personnel', async () => {
await page.click('id=btn-filter');
await page.click('id=btn-filter-all');
await page.waitForTimeout(2000);
});

View file

@ -0,0 +1,355 @@
import { test, expect, Page } from '@playwright/test';
import { strictEqual } from 'assert';
let page: Page;
test.beforeAll(async ({ browser }) => {
page = await browser.newPage();
});
test.afterAll(async () => {
if (page !== undefined) {
await page.close();
}
});
test('Login', async () => {
// Login
await page.goto('http://192.168.1.90:20001/');
await expect(page).toHaveTitle(/^Sign in to /);
await page.fill("input[name='username']", 'admin');
await page.fill("input[name='password']", '1234');
await page.click('id=kc-login');
await page.waitForTimeout(2000);
// await page.click('id=acceptBtn');
});
test('ตรวจสอบการแสดงสถานะใช้งาน เปิด/ปิด บุคลากรทั้งหมด', async () => {
try {
// คลิกเมนูจัดการบุคลากร
await page.click('id=menu-icon-personnel-management');
// แสดงสถานะที่ใช้งาน
// คลิกเพื่อเปิด dropdown
await page.click('id=field-select-status');
await page.waitForTimeout(1000); // รอให้ dropdown เปิด
// คลิกเพื่อแสดงสถานะกำลังใช้งานอยู่
await page.click('id=field-select-status_1');
await page.waitForTimeout(1000); // รอให้ UI อัปเดต
// ตรวจสอบว่ามีแต่สถานะใช้งานหรือไม่
const statusActive = await page.isVisible('id=field-select-status_1');
console.log('มีเพียงสถานะการใช้งานเท่านั้น', statusActive); // เช็ค
expect(statusActive).toBe(false);
console.log('ตรวจสอบสถานะการใช้งานมีแต่สถานะกำลังใช้งานเท่านั้น');
// แสดงสถานะที่ไม่ใช้งาน
// คลิกเพื่อเปิด dropdown
await page.keyboard.press('Escape');
await page.click('id=field-select-status');
await page.waitForTimeout(1000); // รอให้ dropdown เปิด
// คลิกเพื่อแสดงสถานะกำลังไม่ใช้งาน
await page.click('id=field-select-status_2');
await page.waitForTimeout(1000); // รอให้ UI อัปเดต
// ตรวจสอบว่ามีแต่สถานะไม่ใช้งานหรือไม่
const statusInActive = await page.isVisible('id=field-select-status_1');
console.log('มีเพียงสถานะการใช้งานเท่านั้น', statusInActive); // เช็ค
expect(statusActive).toBe(false);
console.log('ตรวจสอบสถานะการใช้งานมีแต่สถานะที่ไม่ใช้งาน');
// แสดงสถานะทั้งหมด
// คลิกเพื่อเปิด dropdown
await page.keyboard.press('Escape');
await page.click('id=field-select-status');
await page.waitForTimeout(1000); // รอให้ dropdown เปิด
// คลิกเพื่อแสดงสถานะทั้งหมด
await page.click('id=field-select-status_0');
await page.waitForTimeout(1000); // รอให้ UI อัปเดต
// ตรวจสอบว่าแสดงทุกสถานะหรือไม่
const statusAll = await page.isVisible('id=field-select-status_1');
console.log('สถานะทั้งหมด', statusAll); // เช็ค
expect(statusActive).toBe(false);
console.log('ตรวจสอบสถานะทั้งหมด');
} catch (error) {
console.error('เกิดข้อผิดพลาดในการทดสอบ:', error);
throw error;
}
});
test('ตรวจสอบการแสดงสถานะใช้งาน เปิด/ปิด พนักงาน', async () => {
try {
// คลิก Tab พนักงาน
await page.click("(//div[@role='tab'])[2]");
// แสดงสถานะที่ใช้งาน
// คลิกเพื่อเปิด dropdown
await page.click('id=field-select-status');
await page.waitForTimeout(1000); // รอให้ dropdown เปิด
// คลิกเพื่อแสดงสถานะกำลังใช้งานอยู่
await page.click('id=field-select-status_1');
await page.waitForTimeout(1000); // รอให้ UI อัปเดต
// ตรวจสอบว่ามีแต่สถานะใช้งานหรือไม่
const statusActive = await page.isVisible('id=field-select-status_1');
console.log('มีเพียงสถานะการใช้งานเท่านั้น', statusActive); // เช็ค
expect(statusActive).toBe(false);
console.log('ตรวจสอบสถานะการใช้งานมีแต่สถานะกำลังใช้งานเท่านั้น');
// แสดงสถานะที่ไม่ใช้งาน
// คลิกเพื่อเปิด dropdown
await page.keyboard.press('Escape');
await page.click('id=field-select-status');
await page.waitForTimeout(1000); // รอให้ dropdown เปิด
// คลิกเพื่อแสดงสถานะกำลังไม่ใช้งาน
await page.click('id=field-select-status_2');
await page.waitForTimeout(1000); // รอให้ UI อัปเดต
// ตรวจสอบว่ามีแต่สถานะไม่ใช้งานหรือไม่
const statusInActive = await page.isVisible('id=field-select-status_1');
console.log('มีเพียงสถานะการใช้งานเท่านั้น', statusInActive); // เช็ค
expect(statusActive).toBe(false);
console.log('ตรวจสอบสถานะการใช้งานมีแต่สถานะที่ไม่ใช้งาน');
// แสดงสถานะทั้งหมด
// คลิกเพื่อเปิด dropdown
await page.keyboard.press('Escape');
await page.click('id=field-select-status');
await page.waitForTimeout(1000); // รอให้ dropdown เปิด
// คลิกเพื่อแสดงสถานะทั้งหมด
await page.click('id=field-select-status_0');
await page.waitForTimeout(1000); // รอให้ UI อัปเดต
// ตรวจสอบว่าแสดงทุกสถานะหรือไม่
const statusAll = await page.isVisible('id=field-select-status_1');
console.log('สถานะทั้งหมด', statusAll); // เช็ค
expect(statusActive).toBe(false);
console.log('ตรวจสอบสถานะทั้งหมด');
} catch (error) {
console.error('เกิดข้อผิดพลาดในการทดสอบ:', error);
throw error;
}
});
test('ตรวจสอบการแสดงสถานะใช้งาน เปิด/ปิด พนักงานส่งเอกสาร', async () => {
try {
// คลิก Tab พนักงานส่งเอกสาร
await page.click("(//div[@role='tab'])[3]");
// แสดงสถานะที่ใช้งาน
// คลิกเพื่อเปิด dropdown
await page.click('id=field-select-status');
await page.waitForTimeout(1000); // รอให้ dropdown เปิด
// คลิกเพื่อแสดงสถานะกำลังใช้งานอยู่
await page.click('id=field-select-status_1');
await page.waitForTimeout(1000); // รอให้ UI อัปเดต
// ตรวจสอบว่ามีแต่สถานะใช้งานหรือไม่
const statusActive = await page.isVisible('id=field-select-status_1');
console.log('มีเพียงสถานะการใช้งานเท่านั้น', statusActive); // เช็ค
expect(statusActive).toBe(false);
console.log('ตรวจสอบสถานะการใช้งานมีแต่สถานะกำลังใช้งานเท่านั้น');
// แสดงสถานะที่ไม่ใช้งาน
// คลิกเพื่อเปิด dropdown
await page.keyboard.press('Escape');
await page.click('id=field-select-status');
await page.waitForTimeout(1000); // รอให้ dropdown เปิด
// คลิกเพื่อแสดงสถานะกำลังไม่ใช้งาน
await page.click('id=field-select-status_2');
await page.waitForTimeout(1000); // รอให้ UI อัปเดต
// ตรวจสอบว่ามีแต่สถานะไม่ใช้งานหรือไม่
const statusInActive = await page.isVisible('id=field-select-status_1');
console.log('มีเพียงสถานะการใช้งานเท่านั้น', statusInActive); // เช็ค
expect(statusActive).toBe(false);
console.log('ตรวจสอบสถานะการใช้งานมีแต่สถานะที่ไม่ใช้งาน');
// แสดงสถานะทั้งหมด
// คลิกเพื่อเปิด dropdown
await page.keyboard.press('Escape');
await page.click('id=field-select-status');
await page.waitForTimeout(1000); // รอให้ dropdown เปิด
// คลิกเพื่อแสดงสถานะทั้งหมด
await page.click('id=field-select-status_0');
await page.waitForTimeout(1000); // รอให้ UI อัปเดต
// ตรวจสอบว่าแสดงทุกสถานะหรือไม่
const statusAll = await page.isVisible('id=field-select-status_1');
console.log('สถานะทั้งหมด', statusAll); // เช็ค
expect(statusActive).toBe(false);
console.log('ตรวจสอบสถานะทั้งหมด');
} catch (error) {
console.error('เกิดข้อผิดพลาดในการทดสอบ:', error);
throw error;
}
});
test('ตรวจสอบการแสดงสถานะใช้งาน เปิด/ปิด ตัวแทน', async () => {
try {
// คลิก Tab ตัวแทน
await page.click("(//div[@role='tab'])[4]");
// แสดงสถานะที่ใช้งาน
// คลิกเพื่อเปิด dropdown
await page.click('id=field-select-status');
await page.waitForTimeout(1000); // รอให้ dropdown เปิด
// คลิกเพื่อแสดงสถานะกำลังใช้งานอยู่
await page.click('id=field-select-status_1');
await page.waitForTimeout(1000); // รอให้ UI อัปเดต
// ตรวจสอบว่ามีแต่สถานะใช้งานหรือไม่
const statusActive = await page.isVisible('id=field-select-status_1');
console.log('มีเพียงสถานะการใช้งานเท่านั้น', statusActive); // เช็ค
expect(statusActive).toBe(false);
console.log('ตรวจสอบสถานะการใช้งานมีแต่สถานะกำลังใช้งานเท่านั้น');
// แสดงสถานะที่ไม่ใช้งาน
// คลิกเพื่อเปิด dropdown
await page.keyboard.press('Escape');
await page.click('id=field-select-status');
await page.waitForTimeout(1000); // รอให้ dropdown เปิด
// คลิกเพื่อแสดงสถานะกำลังไม่ใช้งาน
await page.click('id=field-select-status_2');
await page.waitForTimeout(1000); // รอให้ UI อัปเดต
// ตรวจสอบว่ามีแต่สถานะไม่ใช้งานหรือไม่
const statusInActive = await page.isVisible('id=field-select-status_1');
console.log('มีเพียงสถานะการใช้งานเท่านั้น', statusInActive); // เช็ค
expect(statusActive).toBe(false);
console.log('ตรวจสอบสถานะการใช้งานมีแต่สถานะที่ไม่ใช้งาน');
// แสดงสถานะทั้งหมด
// คลิกเพื่อเปิด dropdown
await page.keyboard.press('Escape');
await page.click('id=field-select-status');
await page.waitForTimeout(1000); // รอให้ dropdown เปิด
// คลิกเพื่อแสดงสถานะทั้งหมด
await page.click('id=field-select-status_0');
await page.waitForTimeout(1000); // รอให้ UI อัปเดต
// ตรวจสอบว่าแสดงทุกสถานะหรือไม่
const statusAll = await page.isVisible('id=field-select-status_1');
console.log('สถานะทั้งหมด', statusAll); // เช็ค
expect(statusActive).toBe(false);
console.log('ตรวจสอบสถานะทั้งหมด');
} catch (error) {
console.error('เกิดข้อผิดพลาดในการทดสอบ:', error);
throw error;
}
});
test('ตรวจสอบการแสดงสถานะใช้งาน เปิด/ปิด เอเจนซี่', async () => {
try {
// คลิก Tab เอเจนซี่
await page.click("(//div[@role='tab'])[5]");
// แสดงสถานะที่ใช้งาน
// คลิกเพื่อเปิด dropdown
await page.click('id=field-select-status');
await page.waitForTimeout(1000); // รอให้ dropdown เปิด
// คลิกเพื่อแสดงสถานะกำลังใช้งานอยู่
await page.click('id=field-select-status_1');
await page.waitForTimeout(1000); // รอให้ UI อัปเดต
// ตรวจสอบว่ามีแต่สถานะใช้งานหรือไม่
const statusActive = await page.isVisible('id=field-select-status_1');
console.log('มีเพียงสถานะการใช้งานเท่านั้น', statusActive); // เช็ค
expect(statusActive).toBe(false);
console.log('ตรวจสอบสถานะการใช้งานมีแต่สถานะกำลังใช้งานเท่านั้น');
// แสดงสถานะที่ไม่ใช้งาน
// คลิกเพื่อเปิด dropdown
await page.keyboard.press('Escape');
await page.click('id=field-select-status');
await page.waitForTimeout(1000); // รอให้ dropdown เปิด
// คลิกเพื่อแสดงสถานะกำลังไม่ใช้งาน
await page.click('id=field-select-status_2');
await page.waitForTimeout(1000); // รอให้ UI อัปเดต
// ตรวจสอบว่ามีแต่สถานะไม่ใช้งานหรือไม่
const statusInActive = await page.isVisible('id=field-select-status_1');
console.log('มีเพียงสถานะการใช้งานเท่านั้น', statusInActive); // เช็ค
expect(statusActive).toBe(false);
console.log('ตรวจสอบสถานะการใช้งานมีแต่สถานะที่ไม่ใช้งาน');
// แสดงสถานะทั้งหมด
// คลิกเพื่อเปิด dropdown
await page.keyboard.press('Escape');
await page.click('id=field-select-status');
await page.waitForTimeout(1000); // รอให้ dropdown เปิด
// คลิกเพื่อแสดงสถานะทั้งหมด
await page.click('id=field-select-status_0');
await page.waitForTimeout(1000); // รอให้ UI อัปเดต
// ตรวจสอบว่าแสดงทุกสถานะหรือไม่
const statusAll = await page.isVisible('id=field-select-status_1');
console.log('สถานะทั้งหมด', statusAll); // เช็ค
expect(statusActive).toBe(false);
console.log('ตรวจสอบสถานะทั้งหมด');
} catch (error) {
console.error('เกิดข้อผิดพลาดในการทดสอบ:', error);
throw error;
}
});

File diff suppressed because it is too large Load diff