mirror of
https://github.com/CorentinTh/it-tools.git
synced 2025-04-20 06:55:06 -04:00
51 lines
1.7 KiB
TypeScript
51 lines
1.7 KiB
TypeScript
import { type Page, expect, test } from '@playwright/test';
|
|
import _ from 'lodash';
|
|
|
|
async function extractIbanInfo({ page }: { page: Page }) {
|
|
const tdHandles = await page.locator('table tr td').elementHandles();
|
|
const tdTextContents = await Promise.all(tdHandles.map(el => el.textContent()));
|
|
|
|
return _.chain(tdTextContents)
|
|
.map(tdTextContent => tdTextContent?.trim().replace(' Copy to clipboard', ''))
|
|
.chunk(2)
|
|
.value();
|
|
}
|
|
|
|
test.describe('Tool - Iban validator and parser', () => {
|
|
test.beforeEach(async ({ page }) => {
|
|
await page.goto('/iban-validator-and-parser');
|
|
});
|
|
|
|
test('Has correct title', async ({ page }) => {
|
|
await expect(page).toHaveTitle('IBAN validator and parser - IT Tools');
|
|
});
|
|
|
|
test('iban info are extracted from a valid iban', async ({ page }) => {
|
|
await page.getByTestId('iban-input').fill('DE89370400440532013000');
|
|
|
|
const ibanInfo = await extractIbanInfo({ page });
|
|
|
|
expect(ibanInfo).toEqual([
|
|
['Is IBAN valid ?', 'Yes'],
|
|
['Is IBAN a QR-IBAN ?', 'No'],
|
|
['Country code', 'DE'],
|
|
['BBAN', '370400440532013000'],
|
|
['IBAN friendly format', 'DE89 3704 0044 0532 0130 00'],
|
|
]);
|
|
});
|
|
|
|
test('invalid iban errors are displayed', async ({ page }) => {
|
|
await page.getByTestId('iban-input').fill('FR7630006060011234567890189');
|
|
|
|
const ibanInfo = await extractIbanInfo({ page });
|
|
|
|
expect(ibanInfo).toEqual([
|
|
['Is IBAN valid ?', 'No'],
|
|
['IBAN errors', 'Wrong account bank branch checksumWrong IBAN checksum Copy to clipboard'],
|
|
['Is IBAN a QR-IBAN ?', 'No'],
|
|
['Country code', 'N/A'],
|
|
['BBAN', 'N/A'],
|
|
['IBAN friendly format', 'FR76 3000 6060 0112 3456 7890 189'],
|
|
]);
|
|
});
|
|
});
|