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 Detail Headquter Branch', async () => {
  try {
    await page.click('id=menu-icon-branch-management');
    await page.click('id=btn-kebab-action-บริษัท โคโม่ จำกัด');
    await page.click('id=btn-kebab-view-detail-บริษัท โคโม่ จำกัด');

    const detailTitle = page.locator(
      "//span[text()='บริษัท โคโม่ จำกัด ']/following-sibling::span",
    );

    await expect(detailTitle).toHaveText('CMO00000'); // เลขรหัสสำนักงานใหญ่

    console.log('ตรวจสอบข้อมูลถูกต้อง');
  } catch (error) {
    console.error('เกิดข้อผิดพลาดในการทดสอบ', error);
    throw error;
  }

  await page.waitForTimeout(4000);
  await page.click('id=btn-info-close');
});

test('View Detail Sub Branch', async () => {
  try {
    await page.click("(//div[@id='tree-enter-บริษัท โคโม่ จำกัด']//div)[1]");
    await page.click('id=btn-kebab-action-สีลม1');
    await page.click('id=btn-kebab-view-detail-สีลม1');

    const detailTitle = page.locator("//span[text()='สีลม1 ']");

    await detailTitle.waitFor({ state: 'visible' });

    await expect(detailTitle).toHaveText('สีลม1'); // เลขรหัสสำนักงานใหญ่

    console.log('ตรวจสอบข้อมูลถูกต้อง');
  } catch (error) {
    console.error('เกิดข้อผิดพลาดในการทดสอบ', error);
    throw error;
  }

  await page.waitForTimeout(4000);
  await page.click('id=btn-info-close');
});

test('View Detail Service Point', async () => {
  try {
    await page.click("//div[@id='tree-enter-บริษัท คาโมมายด์ จำกัด']/div[1]");
    await page.click('id=btn-kebab-action-บางรัก1');
    await page.click('id=btn-kebab-view-detail-บางรัก1');

    const detailTitle = page.locator("//span[text()='บางรัก1 ']");

    await detailTitle.waitFor({ state: 'visible' });

    await expect(detailTitle).toHaveText('บางรัก1'); // เลขรหัสสำนักงานใหญ่

    console.log('ตรวจสอบข้อมูลถูกต้อง');
  } catch (error) {
    console.error('เกิดข้อผิดพลาดในการทดสอบ', error);
    throw error;
  }

  await page.waitForTimeout(4000);
  await page.click('id=btn-info-close');
});
