136 lines
5.5 KiB
TypeScript
136 lines
5.5 KiB
TypeScript
import { test, expect, Page } from '@playwright/test';
|
|
import { strictEqual, throws } from 'assert';
|
|
import { error, log } from 'console';
|
|
import { date, is } from 'quasar';
|
|
import { Card } from 'react-bootstrap';
|
|
|
|
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) {
|
|
try {
|
|
// Login
|
|
await page.goto('http://192.168.1.62:20101/');
|
|
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');
|
|
|
|
await page.click('id=menu-icon-product-service');
|
|
|
|
isLoginSuccessful = true;
|
|
console.log('Login สำเร็จ');
|
|
} catch (error) {
|
|
console.error('เกิดข้อผิดพลาดในการ Login', error);
|
|
isLoginSuccessful = false;
|
|
}
|
|
}
|
|
|
|
test('Login', async () => {
|
|
await login(page);
|
|
});
|
|
|
|
test('ทดสอบการแก้ไขกลุ่มสินค้าและบริการ', async () => {
|
|
if (!isLoginSuccessful) {
|
|
await login(page);
|
|
}
|
|
try {
|
|
await page.click('id=btn-kebab-action-ประกัน');
|
|
await page.click('id=btn-kebab-edit-ประกัน');
|
|
await page.fill('id=input-name', 'ประกันทั้งหมด');
|
|
await page.click('id=btn-info-basic-save');
|
|
|
|
const detailTitleProductName = await page.locator(
|
|
"//div[normalize-space(text())='ประกันทั้งหมด']",
|
|
);
|
|
|
|
expect(detailTitleProductName).toHaveText('ประกันทั้งหมด');
|
|
console.log(
|
|
'การตรวจสอบการแก้ไขชื่อกลุ่มสินค้าและบริการถูกต้อง',
|
|
detailTitleProductName,
|
|
);
|
|
} catch (error) {
|
|
console.error('เกิดข้อผิดพลาดในการทดสอบ', error);
|
|
isLoginSuccessful = false;
|
|
throw error;
|
|
}
|
|
await page.waitForTimeout(2000);
|
|
});
|
|
|
|
test('ทดสอบการแก้ไขประเภทสินค้าและบริการ', async () => {
|
|
if (!isLoginSuccessful) {
|
|
await login(page);
|
|
}
|
|
try {
|
|
await page.waitForSelector('id=tree-enter-ประกันทั้งหมด', {
|
|
state: 'visible',
|
|
});
|
|
await page.click('id=tree-enter-ประกันทั้งหมด');
|
|
// เข้าสู่หน้าประเภท
|
|
await page.waitForSelector('id=tree-enter-ประเภท-ประกันทั้งหมด', {
|
|
state: 'visible',
|
|
});
|
|
await page.click('id=tree-enter-ประเภท-ประกันทั้งหมด');
|
|
await page.click('id=btn-kebab-action-ประกันภัยแบบกลุ่ม');
|
|
await page.click('id=btn-kebab-edit-ประกันภัยแบบกลุ่ม');
|
|
await page.waitForSelector('id=input-service-name');
|
|
await page.fill('id=input-service-name', 'ประกันชีวิต');
|
|
await page.click("(//button[@id='btn-info-basic-save'])[2]");
|
|
|
|
// กำหนดค่าเพื่อตรวจสอบความถูกต้องของชื่อ
|
|
const detailTitleTypeProduct = await page.locator(
|
|
"//div[normalize-space(text())='ประกันชีวิต']",
|
|
);
|
|
|
|
// ตรวจสอบความถูกต้องของชื่อ
|
|
expect(detailTitleTypeProduct).toHaveText('ประกันชีวิต');
|
|
|
|
console.log('การตรวจสอบการแก้ไขชื่อประเภทสินค้าและบริการถูกต้อง');
|
|
} catch (error) {
|
|
console.error('เกิดข้อผิดพลาดในการทดสอบ', error);
|
|
isLoginSuccessful = false;
|
|
throw error;
|
|
}
|
|
await page.waitForTimeout(2000);
|
|
});
|
|
|
|
test('ทดสอบการแก้ไขสินค้าและบริการ', async () => {
|
|
if (!isLoginSuccessful) {
|
|
await login(page);
|
|
}
|
|
try {
|
|
await page.waitForSelector('id=tree-enter-สินค้าและบริการ-ประกันทั้งหมด', {
|
|
state: 'visible',
|
|
});
|
|
await page.click('id=tree-enter-สินค้าและบริการ-ประกันทั้งหมด');
|
|
await page.click('id=btn-kebab-action-ประเภทกลุ่ม');
|
|
await page.click('id=btn-kebab-edit-ประเภทกลุ่ม');
|
|
await page.waitForSelector("(//input[@id='input-name'])[2]");
|
|
await page.fill("(//input[@id='input-name'])[2]", 'ประเภทบุคคล');
|
|
await page.click("(//button[@id='btn-info-basic-save'])[2]");
|
|
|
|
await page.waitForSelector("//div[normalize-space(text())='ประเภทบุคคล']");
|
|
const detailNameProduct = await page.locator(
|
|
"//div[normalize-space(text())='ประเภทบุคคล']",
|
|
);
|
|
|
|
expect(detailNameProduct).toHaveText('ประเภทบุคคล');
|
|
console.log('การตรวจสอบการแก้ไขชื่อสินค้าและบริการถูกต้อง');
|
|
} catch (error) {
|
|
console.log('เกิดข้อผิดพลาดในการทดสอบ', error);
|
|
isLoginSuccessful = false;
|
|
throw error;
|
|
}
|
|
});
|