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-branch-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;
  }

  await page.waitForTimeout(2000);
});

// test('ตรวจสอบการแสดงผลสถานะการใช้งาน เปิด/ปิด สาขา', async () => {
//   try {
//     // คลิกเข้าสู่สาขา
//     await page.click("//div[@id='tree-enter-บริษัท โคโมโดะ จำกัด']/div[1]");

//     // แสดงสถานะที่ใช้งาน
//     // คลิกเพื่อเปิด 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;
//   }

//   await page.waitForTimeout(2000);
// });

// test('ตรวจสอบการแสดงผลสถานะการใช้งาน เปิด/ปิด จุดรับบริการ', async () => {
//   try {
//     // คลิกเข้าสู่สาขาเสมือน
//     await page.click("//div[@id='tree-enter-บริษัท คาโมมายด์ จำกัด']/div[1]");

//     // แสดงสถานะที่ใช้งาน
//     // คลิกเพื่อเปิด 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;
//   }

//   await page.waitForTimeout(2000);
// });
