import { test, expect, Page } from '@playwright/test'; import { faker, 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_3_3_001', async () => { if (!isLoginSuccessful) { await login(page); } try { // เข้าสู่หน้าสินค้าและบริการ await page.click('id=menu.manage'); await page.waitForSelector('id=sub-menu-productService'); await page.click('id=sub-menu-productService'); const titleNameProductAndService = page.locator( "//div[@id='app-content']/div[1]/div[1]/span[1]", ); await expect(titleNameProductAndService).toHaveText('สินค้าและบริการ'); } catch (error) { console.error('เกิดข้อผิดพลาดในการทดสอบ', error); isLoginSuccessful = false; throw error; } await page.waitForTimeout(2000); console.log('ระบบเข้าสู่หน้าสินค้าและบริการ'); }); test('TC_3_3_002', async () => { if (!isLoginSuccessful) { await login(page); } try { // เข้าสู่หน้าสินค้าและบริการ await page.click('id=menu.manage'); await page.waitForSelector('id=sub-menu-productService'); await page.click('id=sub-menu-productService'); await page.click('id=btn-add'); const titleGroupProductAndService = page.locator( "//div[contains(@class,'col text-subtitle1')]", ); await expect(titleGroupProductAndService).toHaveText( 'เพิ่มกลุ่มสินค้าและบริการ', ); } catch (error) { console.error('เกิดข้อผิดพลาดในการทดสอบ', error); isLoginSuccessful = false; throw error; } await page.waitForTimeout(2000); console.log('ระบบแสดงหน้าเพิ่มกลุ่มสินค้าและบริการ'); }); test('TC_3_3_003', async () => { if (!isLoginSuccessful) { await login(page); } try { // เข้าสู่หน้าสินค้าและบริการ await page.click('id=menu.manage'); await page.waitForSelector('id=sub-menu-productService'); await page.click('id=sub-menu-productService'); await page.click('id=btn-add'); await page.click("(//input[@id='select-hq-id'])[2]"); await page.waitForSelector('id=select-hq-id_0'); await page.click('id=select-hq-id_0'); await page.fill("(//input[@id='input-name'])[2]", 'ค่าบริการ'); await page.click('id=btn-info-basic-save'); const checkGroupProductAndServiceCreate = page.locator( "//div[normalize-space(text())='ค่าบริการ']", ); await expect(checkGroupProductAndServiceCreate).toHaveText('ค่าบริการ'); } catch (error) { console.error('เกิดข้อผิดพลาดในการทดสอบ', error); isLoginSuccessful = false; throw error; } await page.waitForTimeout(2000); console.log('ระบบทำการเพิ่มกลุ่มสินค้าและบริการ'); }); test('TC_3_3_004', async () => { if (!isLoginSuccessful) { await login(page); } try { // เข้าสู่หน้าสินค้าและบริการ await page.click('id=menu.manage'); await page.waitForSelector('id=sub-menu-productService'); await page.click('id=sub-menu-productService'); await page.click('id=btn-add'); await page.waitForTimeout(2000); await page.click('id=btn-info-basic-save'); const expectedErrors = [ { locator: "(//div[@role='alert'])[1]", message: 'จำเป็นต้องกรอกข้อมูลนี้', }, { locator: "(//div[@role='alert'])[2]", message: 'จำเป็นต้องกรอกข้อมูลนี้', }, ]; for (const error of expectedErrors) { const locator = page.locator(error.locator); await expect(locator).toHaveText(error.message); } } catch (error) { console.error('เกิดข้อผิดพลาดในการทดสอบ', error); isLoginSuccessful = false; throw error; } await page.waitForTimeout(2000); console.log('ระบบแจ้งเตือนในกรณีที่ไม่กรอกข้อมูล'); }); test('TC_3_3_005', async () => { if (!isLoginSuccessful) { await login(page); } try { // เข้าสู่หน้าสินค้าและบริการ await page.click('id=menu.manage'); await page.waitForSelector('id=sub-menu-productService'); await page.click('id=sub-menu-productService'); await page.click('id=btn-add'); await page.fill("(//input[@id='input-name'])[2]", 'กลุ่มทดสอบ'); await page.waitForTimeout(2000); await page.click('id=btn-info-basic-save'); const expectedErrors = [ { locator: "(//div[@role='alert'])[1]", message: 'จำเป็นต้องกรอกข้อมูลนี้', }, ]; for (const error of expectedErrors) { const locator = page.locator(error.locator); await expect(locator).toHaveText(error.message); } } catch (error) { console.error('เกิดข้อผิดพลาดในการทดสอบ', error); isLoginSuccessful = false; throw error; } await page.waitForTimeout(2000); console.log( 'ระบบแจ้งเตือนในกรณีที่กรอกชื่อกลุ่มสินค้าแต่ไม่เลือกสาขาที่ลงทะเบียน', ); }); test('TC_3_3_006', async () => { if (!isLoginSuccessful) { await login(page); } try { // เข้าสู่หน้าสินค้าและบริการ await page.click('id=menu.manage'); await page.waitForSelector('id=sub-menu-productService'); await page.click('id=sub-menu-productService'); await page.click('id=btn-add'); await page.click("(//input[@id='select-hq-id'])[2]"); await page.waitForSelector('id=select-hq-id_0'); await page.click('id=select-hq-id_0'); await page.waitForTimeout(2000); await page.click('id=btn-info-basic-save'); const expectedErrors = [ { locator: "(//div[@role='alert'])[1]", message: 'จำเป็นต้องกรอกข้อมูลนี้', }, ]; for (const error of expectedErrors) { const locator = page.locator(error.locator); await expect(locator).toHaveText(error.message); } } catch (error) { console.error('เกิดข้อผิดพลาดในการทดสอบ', error); isLoginSuccessful = false; throw error; } await page.waitForTimeout(2000); console.log('ระบบแจ้งเตือนในกรณีที่เลือกสาขาที่ลงทะเบียนแต่ไม่กรอกชื่อ'); }); test('TC_3_3_007', async () => { if (!isLoginSuccessful) { await login(page); } try { // เข้าสู่หน้าสินค้าและบริการ await page.click('id=menu.manage'); await page.waitForSelector('id=sub-menu-productService'); await page.click('id=sub-menu-productService'); // การแก้ไขกลุ่มสินค้าและบริการ await page.click("(//button[@id='btn-kebab-action-ค่าบริการ'])[2]"); await page.waitForSelector('id=btn-kebab-edit-ค่าบริการ'); await page.click('id=btn-kebab-edit-ค่าบริการ'); await page.fill('id=input-name', 'ค่าบริการและสินค้า'); await page.waitForTimeout(2000); await page.click('id=btn-info-basic-save'); // ตรวจสอบหลังจากทำการแก้ไข const editGroupAndService = page.locator( "//div[normalize-space(text())='ค่าบริการและสินค้า']", ); await expect(editGroupAndService).toHaveText('ค่าบริการและสินค้า'); } catch (error) { console.error('เกิดข้อผิดพลาดในการทดสอบ', error); isLoginSuccessful = false; throw error; } await page.waitForTimeout(2000); console.log('ระบบสามารถแก้ไขกลุ่มสินค้าและบริการได้'); }); test('TC_3_3_008', async () => { if (!isLoginSuccessful) { await login(page); } try { // เข้าสู่หน้าสินค้าและบริการ await page.click('id=menu.manage'); await page.waitForSelector('id=sub-menu-productService'); await page.click('id=sub-menu-productService'); // การลบกลุ่มสินค้าและบริการ await page.click( "(//button[@id='btn-kebab-action-ค่าบริการและสินค้า'])[2]", ); await page.waitForSelector('id=btn-kebab-delete-ค่าบริการและสินค้า'); await page.click('id=btn-kebab-delete-ค่าบริการและสินค้า'); await page.waitForSelector('id=btn-ok-dialog'); await page.click('id=btn-ok-dialog'); // ตรวจสอบหลังจากทำการลบ const deleteGroupAndService = page.locator( "//div[normalize-space(text())='ค่าบริการและสินค้า']", ); await expect(deleteGroupAndService).toBeHidden(); } catch (error) { console.error('เกิดข้อผิดพลาดในการทดสอบ', error); isLoginSuccessful = false; throw error; } await page.waitForTimeout(2000); console.log( 'ระบบสามารถทำการลบกลุ่มสินค้าและบริการในกรณีที่ยังไม่มีการใช้งานได้', ); }); test('TC_3_3_009', async () => { if (!isLoginSuccessful) { await login(page); } try { // เข้าสู่หน้าสินค้าและบริการ await page.click('id=menu.manage'); await page.waitForSelector('id=sub-menu-productService'); await page.click('id=sub-menu-productService'); // ทดสอบการเพิ่มกลุ่มสินค้าและบริการ await page.click('id=btn-add'); await page.click("(//input[@id='select-hq-id'])[2]"); await page.waitForSelector('id=select-hq-id_0'); await page.click('id=select-hq-id_0'); await page.fill("(//input[@id='input-name'])[2]", 'ค่าธรรมเนียม'); await page.click('id=btn-info-basic-save'); // ทดสอบการเพิ่มสินค้าเพื่อทดสอบการลบ await page.waitForSelector('id=tree-enter-ค่าธรรมเนียม'); await page.click('id=tree-enter-ค่าธรรมเนียม'); await page.waitForSelector('id=tree-enter-สินค้าและบริการ-ค่าธรรมเนียม'); await page.click('id=tree-enter-สินค้าและบริการ-ค่าธรรมเนียม'); await page.waitForSelector('id=btn-add'); await page.click('id=btn-add'); await page.waitForSelector("(//input[@id='select-br-id'])[1]"); await page.click("(//input[@id='select-br-id'])[1]"); await page.waitForSelector('id=select-br-id_0'); await page.click('id=select-br-id_0'); await page.fill("(//input[@id='input-name'])[2]", 'ค่าธรรมเนียมอื่นๆ'); await page.waitForTimeout(2000); await page.click('id=btn-info-basic-save'); await page.waitForTimeout(2000); await page.reload(); // // การลบกลุ่มสินค้าและบริการ await page.waitForTimeout(2000); await page.click("(//button[@id='btn-kebab-action-ค่าธรรมเนียม'])[2]"); await page.waitForTimeout(2000); // ตรวจสอบสีของปุ่ม "ลบ" ว่ากลายเป็นสีเทาหรือไม่ const deleteText = page.locator("//span[text()='ลบ']"); const color = await deleteText.evaluate((el) => { const style = window.getComputedStyle(el); return style.color; // ตรวจสอบค่า color ของปุ่ม }); const expectedColor = 'rgb(125, 130, 130)'; // ค่าสีเทาที่คาดหวัง (คุณสามารถปรับสีตามที่ระบบของคุณใช้งาน) expect(color).toBe(expectedColor); console.log('✅ ปุ่ม "ลบ" เปลี่ยนเป็นสีเทา'); } catch (error) { console.error('เกิดข้อผิดพลาดในการทดสอบ', error); isLoginSuccessful = false; throw error; } await page.waitForTimeout(2000); console.log( 'ระบบไม่สามารถทำการลบกลุ่มสินค้าและบริการในกรณีที่มีการใช้งานได้', ); }); test('TC_3_3_010', async () => { if (!isLoginSuccessful) { await login(page); } try { // เข้าสู่หน้าสินค้าและบริการ await page.click('id=menu.manage'); await page.waitForSelector('id=sub-menu-productService'); await page.click('id=sub-menu-productService'); // การเพิ่มสินค้า await page.waitForSelector('id=tree-enter-ค่าธรรมเนียม'); await page.click('id=tree-enter-ค่าธรรมเนียม'); await page.waitForSelector('id=tree-enter-สินค้าและบริการ-ค่าธรรมเนียม'); await page.click('id=tree-enter-สินค้าและบริการ-ค่าธรรมเนียม'); await page.waitForSelector('id=btn-add'); await page.click('id=btn-add'); // ตรวจสอบหน้าการเพิ่มสินค้า const pageCreateProduceAndService = page.locator( "//div[contains(@class,'col text-subtitle1')]", ); await expect(pageCreateProduceAndService).toHaveText( 'เพิ่มสินค้าและบริการ', ); } catch (error) { console.error('เกิดข้อผิดพลาดในการทดสอบ', error); isLoginSuccessful = false; throw error; } await page.waitForTimeout(2000); console.log('ระบบเข้าสู่หน้าเพิ่มสินค้าและบริการ'); }); test('TC_3_3_011', async () => { if (!isLoginSuccessful) { await login(page); } try { // เข้าสู่หน้าสินค้าและบริการ await page.click('id=menu.manage'); await page.waitForSelector('id=sub-menu-productService'); await page.click('id=sub-menu-productService'); // การเข้าสู่หน้าสินค้าและบริการ await page.waitForSelector('id=tree-enter-ค่าธรรมเนียม'); await page.click('id=tree-enter-ค่าธรรมเนียม'); await page.waitForSelector('id=tree-enter-สินค้าและบริการ-ค่าธรรมเนียม'); await page.click('id=tree-enter-สินค้าและบริการ-ค่าธรรมเนียม'); // การเพิ่มสินค้า await page.waitForSelector('id=btn-add'); await page.click('id=btn-add'); // ส่วนข้อมูลพื้นฐาน await page.waitForSelector("(//input[@id='select-br-id'])[1]"); await page.click("(//input[@id='select-br-id'])[1]"); await page.waitForSelector('id=select-br-id_0'); await page.click('id=select-br-id_0'); await page.fill("(//input[@id='input-name'])[2]", 'ค่าธรรมเนียมการเดินทาง'); await page.waitForTimeout(1000); await page.waitForSelector("(//input[@id='select-br-id'])[2]"); await page.click("(//input[@id='select-br-id'])[2]"); await page.waitForSelector('id=select-br-id_1'); await page.click('id=select-br-id_1'); await page.waitForTimeout(1000); // ส่วนข้อมูลราคา await page.click("(//div[@role='listitem'])[2]"); await page.fill('id=input-price', '2000'); await page.fill('id=input-agent-price', '1000'); await page.fill('id=input-service-charge', '500'); await page.waitForTimeout(1000); // // ส่วนข้อมูลเอกสาร // await page.click("(//div[@role='listitem'])[3]"); // await page.waitForSelector("//div[normalize-space(text())='เลือกเอกสาร']"); // await page.click("//div[normalize-space(text())='เลือกเอกสาร']"); // await page.waitForSelector("(//div[@class='q-checkbox__bg absolute'])[1]"); // await page.click("(//div[@class='q-checkbox__bg absolute'])[1]"); await page.waitForTimeout(1000); await page.click('id=btn-info-basic-save'); await page.waitForTimeout(2000); // ตรวจสอบหน้าการเพิ่มสินค้า const createProductAndService = page.locator( "//div[normalize-space(text())='ค่าธรรมเนียมการเดินทาง']", ); await expect(createProductAndService).toHaveText('ค่าธรรมเนียมการเดินทาง'); } catch (error) { console.error('เกิดข้อผิดพลาดในการทดสอบ', error); isLoginSuccessful = false; throw error; } await page.waitForTimeout(2000); console.log('ระบบสามารถเพิ่มสินค้าและบริการได้'); }); test('TC_3_3_012', async () => { if (!isLoginSuccessful) { await login(page); } try { // เข้าสู่หน้าสินค้าและบริการ await page.click('id=menu.manage'); await page.waitForSelector('id=sub-menu-productService'); await page.click('id=sub-menu-productService'); // การเข้าสู่หน้าสินค้าและบริการ await page.waitForSelector('id=tree-enter-ค่าธรรมเนียม'); await page.click('id=tree-enter-ค่าธรรมเนียม'); await page.waitForSelector('id=tree-enter-สินค้าและบริการ-ค่าธรรมเนียม'); await page.click('id=tree-enter-สินค้าและบริการ-ค่าธรรมเนียม'); // การเพิ่มสินค้า await page.waitForSelector('id=btn-add'); await page.click('id=btn-add'); await page.waitForTimeout(1000); await page.click('id=btn-info-basic-save'); await page.waitForTimeout(2000); const expectedErrors = [ { locator: "(//div[@role='alert'])[1]", message: 'จำเป็นต้องกรอกข้อมูลนี้', }, { locator: "(//div[@role='alert'])[2]", message: 'จำเป็นต้องกรอกข้อมูลนี้', }, ]; for (const error of expectedErrors) { const locator = page.locator(error.locator); await expect(locator).toHaveText(error.message); } } catch (error) { console.error('เกิดข้อผิดพลาดในการทดสอบ', error); isLoginSuccessful = false; throw error; } await page.waitForTimeout(2000); console.log('ระบบทำการแจ้งเตือนในกรณีที่ไม่กรอกข้อมูล'); }); test('TC_3_3_013', async () => { if (!isLoginSuccessful) { await login(page); } try { // เข้าสู่หน้าสินค้าและบริการ await page.click('id=menu.manage'); await page.waitForSelector('id=sub-menu-productService'); await page.click('id=sub-menu-productService'); // การเข้าสู่หน้าสินค้าและบริการ await page.waitForSelector('id=tree-enter-ค่าธรรมเนียม'); await page.click('id=tree-enter-ค่าธรรมเนียม'); await page.waitForSelector('id=tree-enter-สินค้าและบริการ-ค่าธรรมเนียม'); await page.click('id=tree-enter-สินค้าและบริการ-ค่าธรรมเนียม'); // การเพิ่มสินค้า await page.waitForSelector('id=btn-add'); await page.click('id=btn-add'); await page.fill("(//input[@id='input-name'])[2]", 'ธรรมเนียม'); await page.waitForTimeout(1000); await page.click('id=btn-info-basic-save'); await page.waitForTimeout(2000); const expectedErrors = [ { locator: "(//div[@role='alert'])[1]", message: 'จำเป็นต้องกรอกข้อมูลนี้', }, ]; for (const error of expectedErrors) { const locator = page.locator(error.locator); await expect(locator).toHaveText(error.message); } } catch (error) { console.error('เกิดข้อผิดพลาดในการทดสอบ', error); isLoginSuccessful = false; throw error; } await page.waitForTimeout(2000); console.log('ระบบทำการแจ้งเตือนในกรณีที่ไม่เลือกรหัสสินค้า'); }); test('TC_3_3_014', async () => { if (!isLoginSuccessful) { await login(page); } try { // เข้าสู่หน้าสินค้าและบริการ await page.click('id=menu.manage'); await page.waitForSelector('id=sub-menu-productService'); await page.click('id=sub-menu-productService'); // การเข้าสู่หน้าสินค้าและบริการ await page.waitForSelector('id=tree-enter-ค่าธรรมเนียม'); await page.click('id=tree-enter-ค่าธรรมเนียม'); await page.waitForSelector('id=tree-enter-สินค้าและบริการ-ค่าธรรมเนียม'); await page.click('id=tree-enter-สินค้าและบริการ-ค่าธรรมเนียม'); // การเพิ่มสินค้า await page.waitForSelector('id=btn-add'); await page.click('id=btn-add'); await page.click("(//input[@id='select-br-id'])[1]"); await page.waitForSelector('id=select-br-id_0'); await page.click('id=select-br-id_0'); await page.waitForTimeout(1000); await page.click('id=btn-info-basic-save'); await page.waitForTimeout(2000); const expectedErrors = [ { locator: "(//div[@role='alert'])[1]", message: 'จำเป็นต้องกรอกข้อมูลนี้', }, ]; for (const error of expectedErrors) { const locator = page.locator(error.locator); await expect(locator).toHaveText(error.message); } } catch (error) { console.error('เกิดข้อผิดพลาดในการทดสอบ', error); isLoginSuccessful = false; throw error; } await page.waitForTimeout(2000); console.log('ระบบทำการแจ้งเตือนในกรณีที่ไม่กรอกชื่อสินค้า'); }); test('TC_3_3_015', async () => { if (!isLoginSuccessful) { await login(page); } try { // เข้าสู่หน้าสินค้าและบริการ await page.click('id=menu.manage'); await page.waitForSelector('id=sub-menu-productService'); await page.click('id=sub-menu-productService'); // การเข้าสู่หน้าสินค้าและบริการ await page.waitForSelector('id=tree-enter-ค่าธรรมเนียม'); await page.click('id=tree-enter-ค่าธรรมเนียม'); await page.waitForSelector('id=tree-enter-สินค้าและบริการ-ค่าธรรมเนียม'); await page.click('id=tree-enter-สินค้าและบริการ-ค่าธรรมเนียม'); // การแก้ไขสินค้าและบริการ 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( "(//input[@id='input-name'])[2]", 'ค่าธรรมเนียมประกันสังคม', ); await page.waitForTimeout(1000); await page.click('id=btn-info-basic-save'); // ตรวจสอบการแก้ไขสินค้าและบริการ const editProductAndService = page.locator( "//div[normalize-space(text())='ค่าธรรมเนียมประกันสังคม']", ); await expect(editProductAndService).toHaveText('ค่าธรรมเนียมประกันสังคม'); } catch (error) { console.error('เกิดข้อผิดพลาดในการทดสอบ', error); isLoginSuccessful = false; throw error; } await page.waitForTimeout(2000); console.log('ระบบสามารถแก้ไขสินค้าได้'); }); test('TC_3_3_016', async () => { if (!isLoginSuccessful) { await login(page); } try { // เข้าสู่หน้าสินค้าและบริการ await page.click('id=menu.manage'); await page.waitForSelector('id=sub-menu-productService'); await page.click('id=sub-menu-productService'); // การเข้าสู่หน้าสินค้าและบริการ await page.waitForSelector('id=tree-enter-ค่าธรรมเนียม'); await page.click('id=tree-enter-ค่าธรรมเนียม'); await page.waitForSelector('id=tree-enter-สินค้าและบริการ-ค่าธรรมเนียม'); await page.click('id=tree-enter-สินค้าและบริการ-ค่าธรรมเนียม'); // การเพิ่มสินค้า await page.waitForSelector('id=btn-add'); await page.click('id=btn-add'); // เพิ่มสินค้าเพื่อทดสอบการลบ await page.waitForSelector("(//input[@id='select-br-id'])[1]"); await page.click("(//input[@id='select-br-id'])[1]"); await page.waitForSelector('id=select-br-id_0'); await page.click('id=select-br-id_0'); await page.fill("(//input[@id='input-name'])[2]", 'ค่าธรรมเนียม MOU'); await page.waitForTimeout(1000); await page.waitForSelector("(//input[@id='select-br-id'])[2]"); await page.click("(//input[@id='select-br-id'])[2]"); await page.waitForSelector('id=select-br-id_1'); await page.click('id=select-br-id_1'); await page.waitForTimeout(1000); await page.click('id=btn-info-basic-save'); await page.waitForTimeout(2000); // การลบสินค้า await page.waitForSelector('id=btn-kebab-action-ค่าธรรมเนียม MOU'); await page.click('id=btn-kebab-action-ค่าธรรมเนียม MOU'); await page.waitForSelector('id=btn-kebab-delete-ค่าธรรมเนียม MOU'); await page.click('id=btn-kebab-delete-ค่าธรรมเนียม MOU'); await page.waitForSelector('id=btn-ok-dialog'); await page.click('id=btn-ok-dialog'); // ตรวจสอบการลบสินค้า const deleteProductAndService = page.locator( "//div[normalize-space(text())='ค่าธรรมเนียม MOU']", ); await expect(deleteProductAndService).toBeHidden(); } catch (error) { console.error('เกิดข้อผิดพลาดในการทดสอบ', error); isLoginSuccessful = false; throw error; } await page.waitForTimeout(2000); console.log('ระบบสามารถทำการลบสินค้าในกรณีที่ยังไม่มีการใช้งานได้'); }); test('TC_3_3_017', async () => { if (!isLoginSuccessful) { await login(page); } try { // เข้าสู่หน้าสินค้าและบริการ await page.click('id=menu.manage'); await page.waitForSelector('id=sub-menu-productService'); await page.click('id=sub-menu-productService'); // การเข้าสู่หน้าสินค้าและบริการ await page.waitForSelector('id=tree-enter-ค่าธรรมเนียม'); await page.click('id=tree-enter-ค่าธรรมเนียม'); await page.waitForSelector('id=tree-enter-สินค้าและบริการ-ค่าธรรมเนียม'); await page.click('id=tree-enter-สินค้าและบริการ-ค่าธรรมเนียม'); // การลบสินค้า await page.waitForSelector('id=btn-kebab-action-ค่าธรรมเนียมประกันสังคม'); await page.click('id=btn-kebab-action-ค่าธรรมเนียมประกันสังคม'); await page.waitForSelector('id=btn-kebab-delete-ค่าธรรมเนียมประกันสังคม'); await page.click('id=btn-kebab-delete-ค่าธรรมเนียมประกันสังคม'); await page.waitForSelector('id=btn-ok-dialog'); await page.click('id=btn-ok-dialog'); await page.waitForTimeout(1000); // ตรวจสอบการลบสินค้า const popUpWraningDeleteProduct = page.locator( "//span[normalize-space(text())='สินค้าและบริการใช้งานอยู่']", ); await expect(popUpWraningDeleteProduct).toHaveText( 'สินค้าและบริการใช้งานอยู่', ); } catch (error) { console.error('เกิดข้อผิดพลาดในการทดสอบ', error); isLoginSuccessful = false; throw error; } await page.waitForTimeout(2000); console.log('ระบบไม่สามารถทำการลบสินค้าในกรณีที่มีการใช้งานได้'); }); test('TC_3_3_018', async () => { if (!isLoginSuccessful) { await login(page); } try { // เข้าสู่หน้าสินค้าและบริการ await page.click('id=menu.manage'); await page.waitForSelector('id=sub-menu-productService'); await page.click('id=sub-menu-productService'); // การเข้าสู่หน้าสินค้าและบริการ await page.waitForSelector('id=tree-enter-ค่าธรรมเนียม'); await page.click('id=tree-enter-ค่าธรรมเนียม'); await page.waitForSelector('id=tree-enter-แพ็คเกจ-ค่าธรรมเนียม'); await page.click('id=tree-enter-แพ็คเกจ-ค่าธรรมเนียม'); // การเข้าสู่หน้าเพิ่มแพ็คเกจ await page.waitForSelector('id=btn-add'); await page.click('id=btn-add'); // ตรวจสอบหลังจากเปิดหน้าเพิ่มแพ็คเกจ const pageCreatePackage = page.locator( "//div[contains(@class,'col text-subtitle1')]", ); await expect(pageCreatePackage).toHaveText('เพิ่มแพ็คเกจ'); } catch (error) { console.error('เกิดข้อผิดพลาดในการทดสอบ', error); isLoginSuccessful = false; throw error; } await page.waitForTimeout(2000); console.log('ระบบเข้าสู่หน้าเพิ่มแพ็คเกจ'); }); test('TC_3_3_019', async () => { if (!isLoginSuccessful) { await login(page); } try { // เข้าสู่หน้าสินค้าและบริการ await page.click('id=menu.manage'); await page.waitForSelector('id=sub-menu-productService'); await page.click('id=sub-menu-productService'); // การเข้าสู่หน้าสินค้าและบริการ await page.waitForSelector('id=tree-enter-ค่าธรรมเนียม'); await page.click('id=tree-enter-ค่าธรรมเนียม'); await page.waitForSelector('id=tree-enter-แพ็คเกจ-ค่าธรรมเนียม'); await page.click('id=tree-enter-แพ็คเกจ-ค่าธรรมเนียม'); // การเข้าสู่หน้าเพิ่มแพ็คเกจ await page.waitForSelector('id=btn-add'); await page.click('id=btn-add'); // ส่วนข้อมูลแพ็คเกจ await page.fill('id=input-service-code', 'MOU'); await page.fill('id=input-service-name', 'มติครม 2568'); // ส่วนข้อมูลงาน await page.waitForSelector("(//div[@role='listitem'])[2]"); await page.click("(//div[@role='listitem'])[2]"); await page.click("(//button[@id='btn-add-work'])[1]"); await page.waitForSelector("//div[@for='select-work-name-1']"); await page.click("//div[@for='select-work-name-1']"); await page.waitForSelector("//button[contains(.,'จัดการ')]"); await page.click("//button[contains(.,'จัดการ')]"); await page.waitForSelector("//span[normalize-space(text())='เพิ่มงาน']"); await page.click("//span[normalize-space(text())='เพิ่มงาน']"); await page.fill('id=input-work-name-9', 'ค่าดำเนินการ'); await page.waitForSelector('id=btn-save-work-name'); await page.click('id=btn-save-work-name'); await page.waitForSelector("(//button[@id='btn-form-close'])[2]"); await page.click("(//button[@id='btn-form-close'])[2]"); await page.waitForTimeout(2000); await page.click("//div[@for='select-work-name-1']"); await page.waitForSelector("//div[normalize-space(text())='ค่าดำเนินการ']"); await page.click("//div[normalize-space(text())='ค่าดำเนินการ']"); // เพิ่มสินค้า await page.waitForSelector("(//button[@id='btn-add-work-product'])[1]"); await page.click("(//button[@id='btn-add-work-product'])[1]"); await page.waitForSelector( "//div[normalize-space(text())='ค่าธรรมเนียมประกันสังคม']", ); await page.click( "//div[normalize-space(text())='ค่าธรรมเนียมประกันสังคม']", ); await page.waitForTimeout(1000); await page.click('id=btn-form-submit'); // เพิ่มขั้นตอนการทำงาน await page.waitForTimeout(1000); await page.waitForSelector("(//button[@id='btn-add-work-product'])[2]"); await page.click("(//button[@id='btn-add-work-product'])[2]"); await page.waitForSelector('id=undefined'); await page.click('id=undefined'); await page.waitForSelector('id=undefined_0'); await page.click('id=undefined_0'); await page.waitForSelector('id=btn-form-submit'); await page.click('id=btn-form-submit'); await page.waitForTimeout(1000); await page.click('id=btn-info-basic-save'); // ตรวจสอบหลังจากเปิดหน้าเพิ่มแพ็คเกจ const packageCreate = page.locator( "//div[normalize-space(text())='มติครม 2568']", ); await expect(packageCreate).toHaveText('มติครม 2568'); } catch (error) { console.error('เกิดข้อผิดพลาดในการทดสอบ', error); isLoginSuccessful = false; throw error; } await page.waitForTimeout(2000); console.log('ระบบสามารเพิ่มแพ็คเกจได้'); }); test('TC_3_3_020', async () => { if (!isLoginSuccessful) { await login(page); } try { // เข้าสู่หน้าสินค้าและบริการ await page.click('id=menu.manage'); await page.waitForSelector('id=sub-menu-productService'); await page.click('id=sub-menu-productService'); // การเข้าสู่หน้าสินค้าและบริการ await page.waitForSelector('id=tree-enter-ค่าธรรมเนียม'); await page.click('id=tree-enter-ค่าธรรมเนียม'); await page.waitForSelector('id=tree-enter-แพ็คเกจ-ค่าธรรมเนียม'); await page.click('id=tree-enter-แพ็คเกจ-ค่าธรรมเนียม'); // การเข้าสู่หน้าเพิ่มแพ็คเกจ await page.waitForSelector('id=btn-add'); await page.click('id=btn-add'); await page.click('id=btn-info-basic-save'); const expectedErrors = [ { locator: "(//div[@role='alert'])[1]", message: 'จำเป็นต้องกรอกข้อมูลนี้', }, { locator: "(//div[@role='alert'])[2]", message: 'จำเป็นต้องกรอกข้อมูลนี้', }, ]; for (const error of expectedErrors) { const locator = page.locator(error.locator); await expect(locator).toHaveText(error.message); } } catch (error) { console.error('เกิดข้อผิดพลาดในการทดสอบ', error); isLoginSuccessful = false; throw error; } await page.waitForTimeout(2000); console.log('ระบบแจ้งเตือนในกรณีที่ไม่กรอกข้อมูล'); }); test('TC_3_3_021', async () => { if (!isLoginSuccessful) { await login(page); } try { // เข้าสู่หน้าสินค้าและบริการ await page.click('id=menu.manage'); await page.waitForSelector('id=sub-menu-productService'); await page.click('id=sub-menu-productService'); // การเข้าสู่หน้าสินค้าและบริการ await page.waitForSelector('id=tree-enter-ค่าธรรมเนียม'); await page.click('id=tree-enter-ค่าธรรมเนียม'); await page.waitForSelector('id=tree-enter-แพ็คเกจ-ค่าธรรมเนียม'); await page.click('id=tree-enter-แพ็คเกจ-ค่าธรรมเนียม'); // การเข้าสู่หน้าเพิ่มแพ็คเกจ await page.waitForSelector('id=btn-add'); await page.click('id=btn-add'); await page.fill('id=input-service-name', 'มติ ครม'); await page.click('id=btn-info-basic-save'); const expectedErrors = [ { locator: "(//div[@role='alert'])[1]", message: 'จำเป็นต้องกรอกข้อมูลนี้', }, ]; for (const error of expectedErrors) { const locator = page.locator(error.locator); await expect(locator).toHaveText(error.message); } } catch (error) { console.error('เกิดข้อผิดพลาดในการทดสอบ', error); isLoginSuccessful = false; throw error; } await page.waitForTimeout(2000); console.log('ระบบแจ้งเตือนในกรณีที่ไม่กรอกรหัสแพ็คเกจ'); }); test('TC_3_3_022', async () => { if (!isLoginSuccessful) { await login(page); } try { // เข้าสู่หน้าสินค้าและบริการ await page.click('id=menu.manage'); await page.waitForSelector('id=sub-menu-productService'); await page.click('id=sub-menu-productService'); // การเข้าสู่หน้าสินค้าและบริการ await page.waitForSelector('id=tree-enter-ค่าธรรมเนียม'); await page.click('id=tree-enter-ค่าธรรมเนียม'); await page.waitForSelector('id=tree-enter-แพ็คเกจ-ค่าธรรมเนียม'); await page.click('id=tree-enter-แพ็คเกจ-ค่าธรรมเนียม'); // การเข้าสู่หน้าเพิ่มแพ็คเกจ await page.waitForSelector('id=btn-add'); await page.click('id=btn-add'); await page.fill('id=input-service-code', 'MOU'); await page.click('id=btn-info-basic-save'); const expectedErrors = [ { locator: "(//div[@role='alert'])[1]", message: 'จำเป็นต้องกรอกข้อมูลนี้', }, ]; for (const error of expectedErrors) { const locator = page.locator(error.locator); await expect(locator).toHaveText(error.message); } } catch (error) { console.error('เกิดข้อผิดพลาดในการทดสอบ', error); isLoginSuccessful = false; throw error; } await page.waitForTimeout(2000); console.log('ระบบแจ้งเตือนในกรณีที่ไม่กรอกชื่อแพ็คเกจ'); }); test('TC_3_3_023', async () => { if (!isLoginSuccessful) { await login(page); } try { // เข้าสู่หน้าสินค้าและบริการ await page.click('id=menu.manage'); await page.waitForSelector('id=sub-menu-productService'); await page.click('id=sub-menu-productService'); // การเข้าสู่หน้าสินค้าและบริการ await page.waitForSelector('id=tree-enter-ค่าธรรมเนียม'); await page.click('id=tree-enter-ค่าธรรมเนียม'); await page.waitForSelector('id=tree-enter-แพ็คเกจ-ค่าธรรมเนียม'); await page.click('id=tree-enter-แพ็คเกจ-ค่าธรรมเนียม'); // การเข้าสู่หน้าเพิ่มแพ็คเกจ await page.waitForSelector('id=btn-add'); await page.click('id=btn-add'); await page.fill('id=input-service-code', 'MOU'); await page.fill('id=input-service-name', 'มติ ครม'); await page.click('id=btn-info-basic-save'); // ตรวจสอบการแจ้งเตือน const headPopUpError = page.locator( "//span[normalize-space(text())='แจ้งเตือน']", ); const popUpDetailError = page.locator( "//span[normalize-space(text())='ข้อมูลงวดไม่ถูกต้อง กรุณาตรวจสอบและยืนยันว่าแต่ละงวดมีสินค้าอย่างน้อยหนึ่งรายการ']", ); await expect(headPopUpError).toHaveText('แจ้งเตือน'); await expect(popUpDetailError).toHaveText( 'ข้อมูลงวดไม่ถูกต้อง กรุณาตรวจสอบและยืนยันว่าแต่ละงวดมีสินค้าอย่างน้อยหนึ่งรายการ', ); } catch (error) { console.error('เกิดข้อผิดพลาดในการทดสอบ', error); isLoginSuccessful = false; throw error; } await page.waitForTimeout(2000); console.log('ระบบแจ้งเตือนในกรณีที่ไม่กรอกข้อมูลส่วนข้อมูลงาน'); }); test('TC_3_3_024', async () => { if (!isLoginSuccessful) { await login(page); } try { // เข้าสู่หน้าสินค้าและบริการ await page.click('id=menu.manage'); await page.waitForSelector('id=sub-menu-productService'); await page.click('id=sub-menu-productService'); // การเข้าสู่หน้าสินค้าและบริการ await page.waitForSelector('id=tree-enter-ค่าธรรมเนียม'); await page.click('id=tree-enter-ค่าธรรมเนียม'); await page.waitForSelector('id=tree-enter-แพ็คเกจ-ค่าธรรมเนียม'); await page.click('id=tree-enter-แพ็คเกจ-ค่าธรรมเนียม'); // การเข้าสู่หน้าเพิ่มแพ็คเกจ await page.waitForSelector('id=btn-add'); await page.click('id=btn-add'); // ส่วนข้อมูลแพ็คเกจ await page.fill('id=input-service-code', 'MOU'); await page.fill('id=input-service-name', 'มติครม 2568'); // ส่วนข้อมูลงาน await page.waitForSelector("(//div[@role='listitem'])[2]"); await page.click("(//div[@role='listitem'])[2]"); await page.click("(//button[@id='btn-add-work'])[1]"); await page.waitForSelector("//div[@for='select-work-name-1']"); await page.click("//div[@for='select-work-name-1']"); await page.waitForSelector("//button[contains(.,'จัดการ')]"); await page.click("//button[contains(.,'จัดการ')]"); await page.waitForSelector("//span[normalize-space(text())='เพิ่มงาน']"); await page.click("//span[normalize-space(text())='เพิ่มงาน']"); await page.fill('id=input-work-name-10', 'ยื่นคำร้อง'); await page.waitForSelector('id=btn-save-work-name'); await page.click('id=btn-save-work-name'); await page.waitForSelector("(//button[@id='btn-form-close'])[2]"); await page.click("(//button[@id='btn-form-close'])[2]"); await page.waitForTimeout(2000); await page.click("//div[@for='select-work-name-1']"); await page.waitForSelector("//div[normalize-space(text())='ยื่นคำร้อง']"); await page.click("//div[normalize-space(text())='ยื่นคำร้อง']"); // ตรวจสอบหลังจากเปิดหน้าเพิ่มแพ็คเกจ const createNameWork = page.locator( "(//span[@class='app-text-muted-2'])[1]", ); await expect(createNameWork).toHaveText('ยื่นคำร้อง'); } catch (error) { console.error('เกิดข้อผิดพลาดในการทดสอบ', error); isLoginSuccessful = false; throw error; } await page.waitForTimeout(2000); console.log('ระบบทำการเลือกงานในแพ็คเกจได้'); }); test('TC_3_3_025', async () => { if (!isLoginSuccessful) { await login(page); } try { // เข้าสู่หน้าสินค้าและบริการ await page.click('id=menu.manage'); await page.waitForSelector('id=sub-menu-productService'); await page.click('id=sub-menu-productService'); // การเข้าสู่หน้าสินค้าและบริการ await page.waitForSelector('id=tree-enter-ค่าธรรมเนียม'); await page.click('id=tree-enter-ค่าธรรมเนียม'); await page.waitForSelector('id=tree-enter-แพ็คเกจ-ค่าธรรมเนียม'); await page.click('id=tree-enter-แพ็คเกจ-ค่าธรรมเนียม'); // การเข้าสู่หน้าเพิ่มแพ็คเกจ await page.waitForSelector('id=btn-add'); await page.click('id=btn-add'); // ส่วนข้อมูลแพ็คเกจ await page.fill('id=input-service-code', 'MOU'); await page.fill('id=input-service-name', 'มติครม 2568'); // ส่วนข้อมูลงาน await page.waitForSelector("(//div[@role='listitem'])[2]"); await page.click("(//div[@role='listitem'])[2]"); await page.click("(//button[@id='btn-add-work'])[1]"); await page.waitForSelector("//div[@for='select-work-name-1']"); await page.click("//div[@for='select-work-name-1']"); await page.waitForSelector( "//div[normalize-space(text())='ค่าธรรมเนียมรวม']", ); await page.click("//div[normalize-space(text())='ค่าธรรมเนียมรวม']"); // เพิ่มสินค้า await page.waitForSelector("(//button[@id='btn-add-work-product'])[1]"); await page.click("(//button[@id='btn-add-work-product'])[1]"); // ตรวจสอบหลังจากเปิดหน้าเพิ่มแพ็คเกจ const pageProduct = page.locator( "(//div[contains(@class,'col text-subtitle1')])[2]", ); await expect(pageProduct).toHaveText('สินค้าและบริการทั้งหมด'); } catch (error) { console.error('เกิดข้อผิดพลาดในการทดสอบ', error); isLoginSuccessful = false; throw error; } await page.waitForTimeout(2000); console.log('ระบบแสดงหน้าสินค้าและบริการในแพ็คเกจ'); }); test('TC_3_3_026', async () => { if (!isLoginSuccessful) { await login(page); } try { // เข้าสู่หน้าสินค้าและบริการ await page.click('id=menu.manage'); await page.waitForSelector('id=sub-menu-productService'); await page.click('id=sub-menu-productService'); // การเข้าสู่หน้าสินค้าและบริการ await page.waitForSelector('id=tree-enter-ค่าธรรมเนียม'); await page.click('id=tree-enter-ค่าธรรมเนียม'); await page.waitForSelector('id=tree-enter-แพ็คเกจ-ค่าธรรมเนียม'); await page.click('id=tree-enter-แพ็คเกจ-ค่าธรรมเนียม'); // การเข้าสู่หน้าเพิ่มแพ็คเกจ await page.waitForSelector('id=btn-add'); await page.click('id=btn-add'); // ส่วนข้อมูลแพ็คเกจ await page.fill('id=input-service-code', 'MOU'); await page.fill('id=input-service-name', 'มติครม 2568'); // ส่วนข้อมูลงาน await page.waitForSelector("(//div[@role='listitem'])[2]"); await page.click("(//div[@role='listitem'])[2]"); await page.click("(//button[@id='btn-add-work'])[1]"); await page.waitForSelector("//div[@for='select-work-name-1']"); await page.click("//div[@for='select-work-name-1']"); await page.waitForSelector("//button[contains(.,'จัดการ')]"); await page.click("//button[contains(.,'จัดการ')]"); await page.waitForSelector("//span[normalize-space(text())='เพิ่มงาน']"); await page.click("//span[normalize-space(text())='เพิ่มงาน']"); await page.fill('id=input-work-name-11', 'ค่าธรรมเนียมรวม'); await page.waitForSelector('id=btn-save-work-name'); await page.click('id=btn-save-work-name'); await page.waitForSelector("(//button[@id='btn-form-close'])[2]"); await page.click("(//button[@id='btn-form-close'])[2]"); await page.waitForTimeout(2000); await page.click("//div[@for='select-work-name-1']"); await page.waitForSelector( "//div[normalize-space(text())='ค่าธรรมเนียมรวม']", ); await page.click("//div[normalize-space(text())='ค่าธรรมเนียมรวม']"); // เพิ่มสินค้า await page.waitForSelector("(//button[@id='btn-add-work-product'])[1]"); await page.click("(//button[@id='btn-add-work-product'])[1]"); await page.waitForSelector( "//div[normalize-space(text())='ค่าธรรมเนียมประกันสังคม']", ); await page.click( "//div[normalize-space(text())='ค่าธรรมเนียมประกันสังคม']", ); await page.waitForTimeout(1000); await page.click('id=btn-form-submit'); // ตรวจสอบหลังจากเปิดหน้าเพิ่มแพ็คเกจ const createProduct = page.locator( "//span[normalize-space(text())='ค่าธรรมเนียมประกันสังคม']", ); await expect(createProduct).toHaveText('ค่าธรรมเนียมประกันสังคม'); } catch (error) { console.error('เกิดข้อผิดพลาดในการทดสอบ', error); isLoginSuccessful = false; throw error; } await page.waitForTimeout(2000); console.log('ระบบทำการเพิ่มสินค้าในแพ็คเกจได้'); }); test('TC_3_3_027', async () => { if (!isLoginSuccessful) { await login(page); } try { // เข้าสู่หน้าสินค้าและบริการ await page.click('id=menu.manage'); await page.waitForSelector('id=sub-menu-productService'); await page.click('id=sub-menu-productService'); // การเข้าสู่หน้าสินค้าและบริการ await page.waitForSelector('id=tree-enter-ค่าธรรมเนียม'); await page.click('id=tree-enter-ค่าธรรมเนียม'); await page.waitForSelector('id=tree-enter-แพ็คเกจ-ค่าธรรมเนียม'); await page.click('id=tree-enter-แพ็คเกจ-ค่าธรรมเนียม'); // การเข้าสู่หน้าเพิ่มแพ็คเกจ await page.waitForSelector('id=btn-add'); await page.click('id=btn-add'); // ส่วนข้อมูลแพ็คเกจ await page.fill('id=input-service-code', 'MOU'); await page.fill('id=input-service-name', 'มติครม 2568'); // ส่วนข้อมูลงาน await page.waitForSelector("(//div[@role='listitem'])[2]"); await page.click("(//div[@role='listitem'])[2]"); await page.click("(//button[@id='btn-add-work'])[1]"); await page.waitForSelector("//div[@for='select-work-name-1']"); await page.waitForTimeout(2000); await page.click("//div[@for='select-work-name-1']"); await page.waitForSelector( "//div[normalize-space(text())='ค่าธรรมเนียมรวม']", ); await page.click("//div[normalize-space(text())='ค่าธรรมเนียมรวม']"); // เพิ่มขั้นตอนการทำงาน await page.waitForTimeout(1000); await page.waitForSelector("(//button[@id='btn-add-work-product'])[2]"); await page.click("(//button[@id='btn-add-work-product'])[2]"); // ตรวจสอบหลังจากเปิดหน้าเพิ่มแพ็คเกจ const pageProperties = page.locator( "(//div[contains(@class,'col text-subtitle1')])[2]", ); await expect(pageProperties).toHaveText('คุณสมบัติ'); } catch (error) { console.error('เกิดข้อผิดพลาดในการทดสอบ', error); isLoginSuccessful = false; throw error; } await page.waitForTimeout(2000); console.log('ระบบแสดงหน้าคุณสมบัติ'); }); test('TC_3_3_028', async () => { if (!isLoginSuccessful) { await login(page); } try { // เข้าสู่หน้าสินค้าและบริการ await page.click('id=menu.manage'); await page.waitForSelector('id=sub-menu-productService'); await page.click('id=sub-menu-productService'); // การเข้าสู่หน้าสินค้าและบริการ await page.waitForSelector('id=tree-enter-ค่าธรรมเนียม'); await page.click('id=tree-enter-ค่าธรรมเนียม'); await page.waitForSelector('id=tree-enter-แพ็คเกจ-ค่าธรรมเนียม'); await page.click('id=tree-enter-แพ็คเกจ-ค่าธรรมเนียม'); // การเข้าสู่หน้าเพิ่มแพ็คเกจ await page.waitForSelector('id=btn-add'); await page.click('id=btn-add'); // ส่วนข้อมูลแพ็คเกจ await page.fill('id=input-service-code', 'MOU'); await page.fill('id=input-service-name', 'มติครม 2568'); // ส่วนข้อมูลงาน await page.waitForSelector("(//div[@role='listitem'])[2]"); await page.click("(//div[@role='listitem'])[2]"); await page.click("(//button[@id='btn-add-work'])[1]"); await page.waitForSelector("//div[@for='select-work-name-1']"); await page.waitForTimeout(2000); await page.click("//div[@for='select-work-name-1']"); await page.waitForSelector( "//div[normalize-space(text())='ค่าธรรมเนียมรวม']", ); await page.click("//div[normalize-space(text())='ค่าธรรมเนียมรวม']"); // เพิ่มขั้นตอนการทำงาน await page.waitForTimeout(1000); await page.waitForSelector("(//button[@id='btn-add-work-product'])[2]"); await page.click("(//button[@id='btn-add-work-product'])[2]"); await page.waitForSelector('id=undefined'); await page.click('id=undefined'); await page.waitForSelector('id=undefined_0'); await page.click('id=undefined_0'); await page.waitForSelector('id=btn-form-submit'); await page.click('id=btn-form-submit'); // ตรวจสอบหลังจากเปิดหน้าเพิ่มแพ็คเกจ const createProperties = page.locator( "//span[@class='app-text-muted']/following-sibling::span[1]", ); await expect(createProperties).toBeVisible(); } catch (error) { console.error('เกิดข้อผิดพลาดในการทดสอบ', error); isLoginSuccessful = false; throw error; } await page.waitForTimeout(2000); console.log('ระบบสามารถเพิ่มแม่แบบขั้นตอนการทำงานในแพ็คเกจได้'); }); test('TC_3_3_029', async () => { if (!isLoginSuccessful) { await login(page); } try { // เข้าสู่หน้าสินค้าและบริการ await page.click('id=menu.manage'); await page.waitForSelector('id=sub-menu-productService'); await page.click('id=sub-menu-productService'); // การเข้าสู่หน้าสินค้าและบริการ await page.waitForSelector('id=tree-enter-ค่าธรรมเนียม'); await page.click('id=tree-enter-ค่าธรรมเนียม'); await page.waitForSelector('id=tree-enter-แพ็คเกจ-ค่าธรรมเนียม'); await page.click('id=tree-enter-แพ็คเกจ-ค่าธรรมเนียม'); // การเข้าสู่หน้าเพิ่มแพ็คเกจ await page.waitForSelector('id=btn-add'); await page.click('id=btn-add'); // ส่วนข้อมูลแพ็คเกจ await page.fill('id=input-service-code', 'MOU'); await page.fill('id=input-service-name', 'มติครม 2568'); // ส่วนข้อมูลงาน await page.waitForSelector("(//div[@role='listitem'])[2]"); await page.click("(//div[@role='listitem'])[2]"); await page.click("(//button[@id='btn-add-work'])[1]"); await page.waitForSelector("//div[@for='select-work-name-1']"); await page.waitForTimeout(2000); await page.click("//div[@for='select-work-name-1']"); await page.waitForSelector( "//div[normalize-space(text())='ค่าธรรมเนียมรวม']", ); await page.click("//div[normalize-space(text())='ค่าธรรมเนียมรวม']"); // เพิ่มขั้นตอนการทำงาน await page.waitForTimeout(1000); await page.waitForSelector("(//button[@id='btn-add-work-product'])[2]"); await page.click("(//button[@id='btn-add-work-product'])[2]"); await page.waitForSelector('id=undefined'); await page.click('id=undefined'); await page.waitForSelector('id=undefined_0'); await page.click('id=undefined_0'); await page.waitForTimeout(2000); await page.click("(//button[@aria-expanded='false'])[2]"); await page.waitForSelector('id=list-workerStatus'); await page.click('id=list-workerStatus'); await page.click('id=list-contactChannel'); await page.waitForTimeout(1000); await page.waitForSelector('id=btn-form-submit'); await page.click('id=btn-form-submit'); // ตรวจสอบหลังจากเปิดหน้าเพิ่มแพ็คเกจ const propertiesWorkerStatus = page.locator( "(//span[contains(@class,'surface-2 bordered')])[3]", ); const propertiesContactChannel = page.locator( "(//span[contains(@class,'surface-2 bordered')]/following-sibling::span)[3]", ); await expect(propertiesWorkerStatus).toHaveText('สถานะคนงาน'); await expect(propertiesContactChannel).toHaveText('ช่องทางการติดต่อ'); } catch (error) { console.error('เกิดข้อผิดพลาดในการทดสอบ', error); isLoginSuccessful = false; throw error; } await page.waitForTimeout(2000); console.log('ระบบสามารถเพิ่มคุณสมบัติในแม่แบบขั้นตอนในแพ็คเกจได้'); }); test('TC_3_3_030', async () => { if (!isLoginSuccessful) { await login(page); } try { // เข้าสู่หน้าสินค้าและบริการ await page.click('id=menu.manage'); await page.waitForSelector('id=sub-menu-productService'); await page.click('id=sub-menu-productService'); // การเข้าสู่หน้าสินค้าและบริการ await page.waitForSelector('id=tree-enter-ค่าธรรมเนียม'); await page.click('id=tree-enter-ค่าธรรมเนียม'); await page.waitForSelector('id=tree-enter-แพ็คเกจ-ค่าธรรมเนียม'); await page.click('id=tree-enter-แพ็คเกจ-ค่าธรรมเนียม'); // การแก้ไขแพ็คเกจ await page.click("//button[@id='btn-kebab-action-มติครม 2568']"); await page.waitForSelector("//div[@id='btn-kebab-edit-มติครม 2568']"); await page.click("//div[@id='btn-kebab-edit-มติครม 2568']"); await page.fill('id=input-service-name', 'มติครม ประจำปี 2568'); await page.waitForTimeout(1000); await page.click('id=btn-info-basic-save'); const editPackageCheck = page.locator( "//div[normalize-space(text())='มติครม ประจำปี 2568']", ); await expect(editPackageCheck).toHaveText('มติครม ประจำปี 2568'); } catch (error) { console.error('เกิดข้อผิดพลาดในการทดสอบ', error); isLoginSuccessful = false; throw error; } await page.waitForTimeout(2000); console.log('ระบบสามารถแก้ไขแพ็คเกจได้'); }); test('TC_3_3_031', async () => { if (!isLoginSuccessful) { await login(page); } try { // เข้าสู่หน้าสินค้าและบริการ await page.click('id=menu.manage'); await page.waitForSelector('id=sub-menu-productService'); await page.click('id=sub-menu-productService'); // การเข้าสู่หน้าสินค้าและบริการ await page.waitForSelector('id=tree-enter-ค่าธรรมเนียม'); await page.click('id=tree-enter-ค่าธรรมเนียม'); await page.waitForSelector('id=tree-enter-แพ็คเกจ-ค่าธรรมเนียม'); await page.click('id=tree-enter-แพ็คเกจ-ค่าธรรมเนียม'); // การเข้าสู่หน้าเพิ่มแพ็คเกจ await page.waitForSelector('id=btn-add'); await page.click('id=btn-add'); // ส่วนข้อมูลแพ็คเกจ await page.fill('id=input-service-code', 'MOU'); await page.fill('id=input-service-name', 'มติครม 2567'); // ส่วนข้อมูลงาน await page.waitForSelector("(//div[@role='listitem'])[2]"); await page.click("(//div[@role='listitem'])[2]"); await page.click("(//button[@id='btn-add-work'])[1]"); await page.waitForSelector("//div[@for='select-work-name-1']"); await page.click("//div[@for='select-work-name-1']"); await page.waitForSelector("//div[normalize-space(text())='ค่าดำเนินการ']"); await page.click("//div[normalize-space(text())='ค่าดำเนินการ']"); // เพิ่มสินค้า await page.waitForSelector("(//button[@id='btn-add-work-product'])[1]"); await page.click("(//button[@id='btn-add-work-product'])[1]"); await page.waitForSelector( "//div[normalize-space(text())='ค่าธรรมเนียมประกันสังคม']", ); await page.click( "//div[normalize-space(text())='ค่าธรรมเนียมประกันสังคม']", ); await page.waitForTimeout(1000); await page.click('id=btn-form-submit'); // เพิ่มขั้นตอนการทำงาน await page.waitForTimeout(1000); await page.waitForSelector("(//button[@id='btn-add-work-product'])[2]"); await page.click("(//button[@id='btn-add-work-product'])[2]"); await page.waitForSelector('id=undefined'); await page.click('id=undefined'); await page.waitForSelector('id=undefined_0'); await page.click('id=undefined_0'); await page.waitForSelector('id=btn-form-submit'); await page.click('id=btn-form-submit'); await page.waitForTimeout(1000); await page.click('id=btn-info-basic-save'); // การทำการลบแพ็คเกจ await page.waitForSelector("//button[@id='btn-kebab-action-มติครม 2567']"); await page.click("//button[@id='btn-kebab-action-มติครม 2567']"); await page.waitForSelector("//div[@id='btn-kebab-delete-มติครม 2567']"); await page.click("//div[@id='btn-kebab-delete-มติครม 2567']"); await page.waitForSelector('id=btn-ok-dialog'); await page.click('id=btn-ok-dialog'); // ตรวจสอบหลังจากทำการลบแพ็คเกจ const deletedPackageCompleted = page.locator( "//div[normalize-space(text())='มติครม 2567']", ); await expect(deletedPackageCompleted).toBeHidden(); } catch (error) { console.error('เกิดข้อผิดพลาดในการทดสอบ', error); isLoginSuccessful = false; throw error; } await page.waitForTimeout(2000); console.log('ระบบสามารถทำการลบแพ็คเกจในกรณีที่ยังไม่มีการใช้งานได้'); }); // test('TC_3_3_032', async () => { // if (!isLoginSuccessful) { // await login(page); // } // try { // // เข้าสู่หน้าสินค้าและบริการ // await page.click('id=menu.manage'); // await page.waitForSelector('id=sub-menu-productService'); // await page.click('id=sub-menu-productService'); // // การเข้าสู่หน้าสินค้าและบริการ // await page.waitForSelector('id=tree-enter-ค่าธรรมเนียม'); // await page.click('id=tree-enter-ค่าธรรมเนียม'); // await page.waitForSelector('id=tree-enter-แพ็คเกจ-ค่าธรรมเนียม'); // await page.click('id=tree-enter-แพ็คเกจ-ค่าธรรมเนียม'); // // การเข้าสู่หน้าเพิ่มแพ็คเกจ // await page.waitForSelector('id=btn-add'); // await page.click('id=btn-add'); // // ส่วนข้อมูลแพ็คเกจ // await page.fill('id=input-service-code', 'MOU'); // await page.fill('id=input-service-name', 'มติครม 2567'); // // ส่วนข้อมูลงาน // await page.waitForSelector("(//div[@role='listitem'])[2]"); // await page.click("(//div[@role='listitem'])[2]"); // await page.click("(//button[@id='btn-add-work'])[1]"); // await page.waitForSelector("//div[@for='select-work-name-1']"); // await page.click("//div[@for='select-work-name-1']"); // await page.waitForSelector("//div[normalize-space(text())='ค่าดำเนินการ']"); // await page.click("//div[normalize-space(text())='ค่าดำเนินการ']"); // // เพิ่มสินค้า // await page.waitForSelector("(//button[@id='btn-add-work-product'])[1]"); // await page.click("(//button[@id='btn-add-work-product'])[1]"); // await page.waitForSelector( // "//div[normalize-space(text())='ค่าธรรมเนียมประกันสังคม']", // ); // await page.click( // "//div[normalize-space(text())='ค่าธรรมเนียมประกันสังคม']", // ); // await page.waitForTimeout(1000); // await page.click('id=btn-form-submit'); // // เพิ่มขั้นตอนการทำงาน // await page.waitForTimeout(1000); // await page.waitForSelector("(//button[@id='btn-add-work-product'])[2]"); // await page.click("(//button[@id='btn-add-work-product'])[2]"); // await page.waitForSelector('id=undefined'); // await page.click('id=undefined'); // await page.waitForSelector('id=undefined_0'); // await page.click('id=undefined_0'); // await page.waitForSelector('id=btn-form-submit'); // await page.click('id=btn-form-submit'); // await page.waitForTimeout(1000); // await page.click('id=btn-info-basic-save'); // // การทำการลบแพ็คเกจ // await page.waitForSelector("//button[@id='btn-kebab-action-มติครม 2567']"); // await page.click("//button[@id='btn-kebab-action-มติครม 2567']"); // await page.waitForSelector("//div[@id='btn-kebab-delete-มติครม 2567']"); // await page.click("//div[@id='btn-kebab-delete-มติครม 2567']"); // await page.waitForSelector('id=btn-ok-dialog'); // await page.click('id=btn-ok-dialog'); // // ตรวจสอบหลังจากทำการลบแพ็คเกจ // const deletedPackageCompleted = page.locator( // "//div[normalize-space(text())='มติครม 2567']", // ); // await expect(deletedPackageCompleted).toBeHidden(); // } catch (error) { // console.error('เกิดข้อผิดพลาดในการทดสอบ', error); // isLoginSuccessful = false; // throw error; // } // await page.waitForTimeout(2000); // console.log('ระบบสามารถทำการลบแพ็คเกจในกรณีที่ยังไม่มีการใช้งานได้'); // });