From 25d5f1836901d1098fdf8d129b35b7854130250b Mon Sep 17 00:00:00 2001 From: Sampo Tawast Date: Fri, 30 Aug 2024 11:26:34 +0300 Subject: [PATCH] refactor: rewrite test code --- .../tests/fixtures/input.js | 90 ++++++++++ .../tests/specs/result-high-limit.spec.js | 89 ---------- .../tests/specs/result-low-limit.spec.js | 85 ---------- .../tests/specs/result-med-limit.spec.js | 86 ---------- .../tests/specs/results.spec.js | 160 ++++++++++++++++++ 5 files changed, 250 insertions(+), 260 deletions(-) create mode 100644 src/js/calculator/helsinki_benefit_amount_estimate/tests/fixtures/input.js delete mode 100644 src/js/calculator/helsinki_benefit_amount_estimate/tests/specs/result-high-limit.spec.js delete mode 100644 src/js/calculator/helsinki_benefit_amount_estimate/tests/specs/result-low-limit.spec.js delete mode 100644 src/js/calculator/helsinki_benefit_amount_estimate/tests/specs/result-med-limit.spec.js create mode 100644 src/js/calculator/helsinki_benefit_amount_estimate/tests/specs/results.spec.js diff --git a/src/js/calculator/helsinki_benefit_amount_estimate/tests/fixtures/input.js b/src/js/calculator/helsinki_benefit_amount_estimate/tests/fixtures/input.js new file mode 100644 index 0000000000..618391852c --- /dev/null +++ b/src/js/calculator/helsinki_benefit_amount_estimate/tests/fixtures/input.js @@ -0,0 +1,90 @@ +import { test, expect } from '@playwright/test'; +// eslint-disable-next-line import/no-relative-packages +import translations from '../../_translations'; + +// eslint-disable-next-line no-template-curly-in-string +const replaceValue = '${value}'; +const PAY_SUBSIDY_PERCENTAGES = ['50', '70']; + +const fillVacationMoney = (page, value) => + test.step('Fill vacation money', async () => { + await page.getByLabel(translations.label_vacation_money.fi).fill(String(value)); + }); + +const fillMonthlyPay = (page, value) => + test.step('Fill monthly pay', async () => { + await page.getByLabel(translations.label_monthly_pay.fi).fill(String(value)); + }); + +const selectPaySubsidyGranted = (page) => + test.step('Select pay subsidy granted', async () => { + await page.getByText(translations.label_pay_subsidy_true.fi, { exact: true }).click(); + }); + +const selectPaySubsidyNotGranted = (page) => + test.step('Select pay subsidy not granted', async () => { + await page.getByText(translations.label_pay_subsidy_false.fi, { exact: true }).click(); + }); + +const selectPaySubsidyPercentageOption1 = (page) => + test.step('Select pay subsidy percentage #1', async () => { + await page + .getByText( + translations.label_pay_subsidy_percentage_1.fi.replace(replaceValue, PAY_SUBSIDY_PERCENTAGES.at(0), { + exact: true, + }), + ) + .click(); + }); + +const selectPaySubsidyPercentageOption2 = (page) => + test.step('Select pay subsidy percentage #2', async () => { + await page + .getByText( + translations.label_pay_subsidy_percentage_2.fi.replace(replaceValue, PAY_SUBSIDY_PERCENTAGES.at(1), { + exact: true, + }), + ) + .click(); + }); + +const selectCompanyTypeBusiness = (page) => + test.step('Select business', async () => { + await page.getByText(translations.label_company_type_business.fi, { exact: true }).click({ force: true }); + }); + +const selectCompanyTypeAssociation = (page) => + test.step('Select association', async () => { + await page.getByText(translations.label_company_type_association.fi, { exact: true }).click({ force: true }); + }); + +const checkAssociationHasBusinessActivities = (page) => + test.step('Check association has business activities', async () => { + await page.getByText(translations.label_association_has_business_activities.fi).isVisible(); + await page.getByText(translations.label_association_has_business_activities.fi, { exact: true }).click(); + }); + +const clickResultsButton = (page) => + test.step('Click results button', async () => { + await page.getByRole('button', { name: 'Laske arvio' }).click({ force: true }); + }); + +const resultSelector = '.helfi-calculator__receipt-total__value'; +const expectResult = (page, result) => + test.step('Click results button', async () => { + expect(await page.locator(resultSelector).textContent()).toBe(result); + }); + +export { + selectPaySubsidyPercentageOption1, + selectPaySubsidyPercentageOption2, + fillVacationMoney, + fillMonthlyPay, + selectCompanyTypeBusiness, + selectCompanyTypeAssociation, + checkAssociationHasBusinessActivities, + selectPaySubsidyGranted, + selectPaySubsidyNotGranted, + clickResultsButton, + expectResult, +}; diff --git a/src/js/calculator/helsinki_benefit_amount_estimate/tests/specs/result-high-limit.spec.js b/src/js/calculator/helsinki_benefit_amount_estimate/tests/specs/result-high-limit.spec.js deleted file mode 100644 index 727738143d..0000000000 --- a/src/js/calculator/helsinki_benefit_amount_estimate/tests/specs/result-high-limit.spec.js +++ /dev/null @@ -1,89 +0,0 @@ -import { test, expect } from '@playwright/test'; -// eslint-disable-next-line import/no-relative-packages -import translations from '../../_translations'; - -// eslint-disable-next-line no-template-curly-in-string -const replaceValue = '${value}'; -const resultSelector = '.helfi-calculator__receipt-total__value'; -const PAY_SUBSIDY_PERCENTAGES = [ - '50', '70']; - -const EXPECTED_RESULT = { - BUSINESS_ACTIVITIES: { - 'NONE': '800,00', - '50': '264,00', - '70': '800,00', - }, - ASSOCIATION: { - 'NONE': '800,00', - '50': '800,00', - '70': '800,00', - } -}; - -test.beforeEach(async ({ page }) => { - await page.goto('http://localhost:3001/src/js/calculator/helsinki_benefit_amount_estimate/helsinki-benefit-test.html'); - await page.getByLabel(translations.label_monthly_pay.fi).fill('2000'); - await page.getByLabel(translations.label_vacation_money.fi).fill('88'); -}); - -test('[Business] Fill in form and check correct calculations as business (high)', async ({ page }) => { - await page.getByText(translations.label_company_type_business.fi, {exact: true}).click({force: true}); - - // With no pay subsidy (assuming state aid is 100%) - await page.getByText(translations.label_pay_subsidy_false.fi, {exact: true}).click(); - await page.getByRole('button', { name: 'Laske arvio' }).click({force: true}); - expect(await page.locator(resultSelector).textContent()).toBe(EXPECTED_RESULT.BUSINESS_ACTIVITIES.NONE); - - // With pay subsidy at 50% (state aid is 50%) - await page.getByText(translations.label_pay_subsidy_true.fi, {exact: true}).click(); - await page.getByText(translations.label_pay_subsidy_percentage_1.fi.replace(replaceValue, PAY_SUBSIDY_PERCENTAGES[0]), {exact: true}).click(); - await page.getByRole('button', { name: 'Laske arvio' }).click({force: true}); - expect(await page.locator(resultSelector).textContent()).toBe(EXPECTED_RESULT.BUSINESS_ACTIVITIES['50']); - - // With pay subsidy at 70% (state aid is 100%) - await page.getByText(translations.label_pay_subsidy_percentage_2.fi.replace(replaceValue, PAY_SUBSIDY_PERCENTAGES[1]), {exact: true}).click(); - await page.getByRole('button', { name: 'Laske arvio' }).click({force: true}); - expect(await page.locator(resultSelector).textContent()).toBe(EXPECTED_RESULT.BUSINESS_ACTIVITIES['70']); -}); - -test('[Association: business] Fill in form and check correct calculations as association with business activities (high)', async ({ page }) => { - await page.getByText(translations.label_company_type_association.fi, {exact: true}).click(); - await page.getByText(translations.label_association_has_business_activities.fi, {exact: true}).click(); - - // With no pay subsidy (assuming state aid is 100%) - await page.getByText(translations.label_pay_subsidy_false.fi, {exact: true}).click(); - await page.getByRole('button', { name: 'Laske arvio' }).click({force: true}); - expect(await page.locator(resultSelector).textContent()).toBe(EXPECTED_RESULT.BUSINESS_ACTIVITIES.NONE); - - // With pay subsidy at 50% (state aid is 50%) - await page.getByText(translations.label_pay_subsidy_true.fi, {exact: true}).click(); - await page.getByText(translations.label_pay_subsidy_percentage_1.fi.replace(replaceValue, PAY_SUBSIDY_PERCENTAGES[0]), {exact: true}).click(); - await page.getByRole('button', { name: 'Laske arvio' }).click({force: true}); - expect(await page.locator(resultSelector).textContent()).toBe(EXPECTED_RESULT.BUSINESS_ACTIVITIES['50']); - - // With pay subsidy at 70% (state aid is 100%) - await page.getByText(translations.label_pay_subsidy_percentage_2.fi.replace(replaceValue, PAY_SUBSIDY_PERCENTAGES[1]), {exact: true}).click(); - await page.getByRole('button', { name: 'Laske arvio' }).click({force: true}); - expect(await page.locator(resultSelector).textContent()).toBe(EXPECTED_RESULT.BUSINESS_ACTIVITIES['70']); -}); - -test('[Association] Fill in form and check correct calculations as association (high)', async ({ page }) => { - await page.getByText(translations.label_company_type_association.fi, {exact: true}).click(); - - // With no pay subsidy (state aid is 100%) - await page.getByText(translations.label_pay_subsidy_false.fi, {exact: true}).click(); - await page.getByRole('button', { name: 'Laske arvio' }).click({force: true}); - expect(await page.locator(resultSelector).textContent()).toBe(EXPECTED_RESULT.ASSOCIATION.NONE); - - // With pay subsidy at 50% (state aid is 50%) - await page.getByText(translations.label_pay_subsidy_true.fi, {exact: true}).click(); - await page.getByText(translations.label_pay_subsidy_percentage_1.fi.replace(replaceValue, PAY_SUBSIDY_PERCENTAGES[0]), {exact: true}).click(); - await page.getByRole('button', { name: 'Laske arvio' }).click({force: true}); - expect(await page.locator(resultSelector).textContent()).toBe(EXPECTED_RESULT.ASSOCIATION['50']); - - // With pay subsidy at 70% (state aid is 100%) - await page.getByText(translations.label_pay_subsidy_percentage_2.fi.replace(replaceValue, PAY_SUBSIDY_PERCENTAGES[1]), {exact: true}).click(); - await page.getByRole('button', { name: 'Laske arvio' }).click({force: true}); - expect(await page.locator(resultSelector).textContent()).toBe(EXPECTED_RESULT.ASSOCIATION['70']); -}); \ No newline at end of file diff --git a/src/js/calculator/helsinki_benefit_amount_estimate/tests/specs/result-low-limit.spec.js b/src/js/calculator/helsinki_benefit_amount_estimate/tests/specs/result-low-limit.spec.js deleted file mode 100644 index 20af620f47..0000000000 --- a/src/js/calculator/helsinki_benefit_amount_estimate/tests/specs/result-low-limit.spec.js +++ /dev/null @@ -1,85 +0,0 @@ -import { test, expect } from '@playwright/test'; -// eslint-disable-next-line import/no-relative-packages -import translations from '../../_translations'; - -// eslint-disable-next-line no-template-curly-in-string -const replaceValue = '${value}'; -const resultSelector = '.helfi-calculator__receipt-total__value'; -const PAY_SUBSIDY_PERCENTAGES = [ - '50', '70']; - -const EXPECTED_RESULT = { - BUSINESS_ACTIVITIES: { - 'NONE': '252,00', - '50': '52,00', - '70': '224,00', - }, - ASSOCIATION: { - 'NONE': '504,00', - '50': '304,00', - '70': '224,00', - } -}; - -test.beforeEach(async ({ page }) => { - await page.goto('http://localhost:3001/src/js/calculator/helsinki_benefit_amount_estimate/helsinki-benefit-test.html'); - await page.getByLabel(translations.label_monthly_pay.fi).fill('400'); - await page.getByLabel(translations.label_vacation_money.fi).fill('16'); -}); - -test('[Business] Fill in form and check correct calculations as business (low)', async ({ page }) => { - await page.getByText(translations.label_company_type_business.fi, {exact: true}).click({force: true}); - - // With no pay subsidy - await page.getByText(translations.label_pay_subsidy_false.fi, {exact: true}).click(); - await page.getByRole('button', { name: 'Laske arvio' }).click({force: true}); - expect(await page.locator(resultSelector).textContent()).toBe(EXPECTED_RESULT.BUSINESS_ACTIVITIES.NONE); - - // With pay subsidy percentage option 1 - await page.getByText(translations.label_pay_subsidy_true.fi, {exact: true}).click(); - await page.getByText(translations.label_pay_subsidy_percentage_1.fi.replace(replaceValue, PAY_SUBSIDY_PERCENTAGES[0]), {exact: true}).click(); - await page.getByRole('button', { name: 'Laske arvio' }).click({force: true}); - expect(await page.locator(resultSelector).textContent()).toBe(EXPECTED_RESULT.BUSINESS_ACTIVITIES['50']); - - // With pay subsidy percentage option 2 - await page.getByText(translations.label_pay_subsidy_percentage_2.fi.replace(replaceValue, PAY_SUBSIDY_PERCENTAGES[1]), {exact: true}).click(); - await page.getByRole('button', { name: 'Laske arvio' }).click({force: true}); - expect(await page.locator(resultSelector).textContent()).toBe(EXPECTED_RESULT.BUSINESS_ACTIVITIES['70']); -}); - -test('[Association: business] Fill in form and check correct calculations as (low)', async ({ page }) => { - await page.getByText(translations.label_company_type_association.fi, {exact: true}).click(); - await page.getByText(translations.label_association_has_business_activities.fi, {exact: true}).click(); - - // With no pay subsidy (assuming state aid is 100%) - await page.getByText(translations.label_pay_subsidy_false.fi, {exact: true}).click(); - await page.getByRole('button', { name: 'Laske arvio' }).click({force: true}); - expect(await page.locator(resultSelector).textContent()).toBe(EXPECTED_RESULT.BUSINESS_ACTIVITIES.NONE); - - await page.getByText(translations.label_pay_subsidy_true.fi, {exact: true}).click(); - await page.getByText(translations.label_pay_subsidy_percentage_1.fi.replace(replaceValue, PAY_SUBSIDY_PERCENTAGES[0]), {exact: true}).click(); - await page.getByRole('button', { name: 'Laske arvio' }).click({force: true}); - expect(await page.locator(resultSelector).textContent()).toBe(EXPECTED_RESULT.BUSINESS_ACTIVITIES['50']); - - await page.getByText(translations.label_pay_subsidy_percentage_2.fi.replace(replaceValue, PAY_SUBSIDY_PERCENTAGES[1]), {exact: true}).click(); - await page.getByRole('button', { name: 'Laske arvio' }).click({force: true}); - expect(await page.locator(resultSelector).textContent()).toBe(EXPECTED_RESULT.BUSINESS_ACTIVITIES['70']); -}); - -test('[Association] Fill in form and check correct calculations as association (low)', async ({ page }) => { - await page.getByText(translations.label_company_type_association.fi, {exact: true}).click(); - - // With no pay subsidy (assuming state aid is 100%) - await page.getByText(translations.label_pay_subsidy_false.fi, {exact: true}).click(); - await page.getByRole('button', { name: 'Laske arvio' }).click({force: true}); - expect(await page.locator(resultSelector).textContent()).toBe(EXPECTED_RESULT.ASSOCIATION.NONE); - - await page.getByText(translations.label_pay_subsidy_true.fi, {exact: true}).click(); - await page.getByText(translations.label_pay_subsidy_percentage_1.fi.replace(replaceValue, PAY_SUBSIDY_PERCENTAGES[0]), {exact: true}).click(); - await page.getByRole('button', { name: 'Laske arvio' }).click({force: true}); - expect(await page.locator(resultSelector).textContent()).toBe(EXPECTED_RESULT.ASSOCIATION['50']); - - await page.getByText(translations.label_pay_subsidy_percentage_2.fi.replace(replaceValue, PAY_SUBSIDY_PERCENTAGES[1]), {exact: true}).click(); - await page.getByRole('button', { name: 'Laske arvio' }).click({force: true}); - expect(await page.locator(resultSelector).textContent()).toBe(EXPECTED_RESULT.ASSOCIATION['70']); -}); diff --git a/src/js/calculator/helsinki_benefit_amount_estimate/tests/specs/result-med-limit.spec.js b/src/js/calculator/helsinki_benefit_amount_estimate/tests/specs/result-med-limit.spec.js deleted file mode 100644 index 0418d525f9..0000000000 --- a/src/js/calculator/helsinki_benefit_amount_estimate/tests/specs/result-med-limit.spec.js +++ /dev/null @@ -1,86 +0,0 @@ -import { test, expect } from '@playwright/test'; -// eslint-disable-next-line import/no-relative-packages -import translations from '../../_translations'; - - -// eslint-disable-next-line no-template-curly-in-string -const replaceValue = '${value}'; -const resultSelector = '.helfi-calculator__receipt-total__value'; -const PAY_SUBSIDY_PERCENTAGES = [ - '50', '70']; - -const EXPECTED_RESULT = { - BUSINESS_ACTIVITIES: { - 'NONE': '631,00', - '50': '131,00', - '70': '562,00', - }, - ASSOCIATION: { - 'NONE': '800,00', - '50': '762,00', - '70': '562,00', - } -}; - -test.beforeEach(async ({ page }) => { - await page.goto('http://localhost:3001/src/js/calculator/helsinki_benefit_amount_estimate/helsinki-benefit-test.html'); - await page.getByLabel(translations.label_monthly_pay.fi).fill('1000'); - await page.getByLabel(translations.label_vacation_money.fi).fill('42'); -}); - -test('[Business] Fill in form and check correct calculations as business (medium)', async ({ page }) => { - await page.getByText(translations.label_company_type_business.fi, {exact: true}).click({force: true}); - - // With no pay subsidy (assuming state aid is 100%) - await page.getByText(translations.label_pay_subsidy_false.fi, {exact: true}).click(); - await page.getByRole('button', { name: 'Laske arvio' }).click({force: true}); - expect(await page.locator(resultSelector).textContent()).toBe(EXPECTED_RESULT.BUSINESS_ACTIVITIES.NONE); - - // With pay subsidy percentage option 1 - await page.getByText(translations.label_pay_subsidy_true.fi, {exact: true}).click(); - await page.getByText(translations.label_pay_subsidy_percentage_1.fi.replace(replaceValue, PAY_SUBSIDY_PERCENTAGES[0]), {exact: true}).click(); - await page.getByRole('button', { name: 'Laske arvio' }).click({force: true}); - expect(await page.locator(resultSelector).textContent()).toBe(EXPECTED_RESULT.BUSINESS_ACTIVITIES['50']); - - // With pay subsidy percentage option 2 - await page.getByText(translations.label_pay_subsidy_percentage_2.fi.replace(replaceValue, PAY_SUBSIDY_PERCENTAGES[1]), {exact: true}).click(); - await page.getByRole('button', { name: 'Laske arvio' }).click({force: true}); - expect(await page.locator(resultSelector).textContent()).toBe(EXPECTED_RESULT.BUSINESS_ACTIVITIES['70']); -}); - -test('[Association: business] Fill in form and check correct calculations as (medium)', async ({ page }) => { - await page.getByText(translations.label_company_type_association.fi, {exact: true}).click(); - await page.getByText(translations.label_association_has_business_activities.fi, {exact: true}).click(); - - // With no pay subsidy (assuming state aid is 100%) - await page.getByText(translations.label_pay_subsidy_false.fi, {exact: true}).click(); - await page.getByRole('button', { name: 'Laske arvio' }).click({force: true}); - expect(await page.locator(resultSelector).textContent()).toBe(EXPECTED_RESULT.BUSINESS_ACTIVITIES.NONE); - - await page.getByText(translations.label_pay_subsidy_true.fi, {exact: true}).click(); - await page.getByText(translations.label_pay_subsidy_percentage_1.fi.replace(replaceValue, PAY_SUBSIDY_PERCENTAGES[0]), {exact: true}).click(); - await page.getByRole('button', { name: 'Laske arvio' }).click({force: true}); - expect(await page.locator(resultSelector).textContent()).toBe(EXPECTED_RESULT.BUSINESS_ACTIVITIES['50']); - - await page.getByText(translations.label_pay_subsidy_percentage_2.fi.replace(replaceValue, PAY_SUBSIDY_PERCENTAGES[1]), {exact: true}).click(); - await page.getByRole('button', { name: 'Laske arvio' }).click({force: true}); - expect(await page.locator(resultSelector).textContent()).toBe(EXPECTED_RESULT.BUSINESS_ACTIVITIES['70']); -}); - -test('[Association] Fill in form and check correct calculations as association (medium)', async ({ page }) => { - await page.getByText(translations.label_company_type_association.fi, {exact: true}).click(); - - // With no pay subsidy (assuming state aid is 100%) - await page.getByText(translations.label_pay_subsidy_false.fi, {exact: true}).click(); - await page.getByRole('button', { name: 'Laske arvio' }).click({force: true}); - expect(await page.locator(resultSelector).textContent()).toBe(EXPECTED_RESULT.ASSOCIATION.NONE); - - await page.getByText(translations.label_pay_subsidy_true.fi, {exact: true}).click(); - await page.getByText(translations.label_pay_subsidy_percentage_1.fi.replace(replaceValue, PAY_SUBSIDY_PERCENTAGES[0]), {exact: true}).click(); - await page.getByRole('button', { name: 'Laske arvio' }).click({force: true}); - expect(await page.locator(resultSelector).textContent()).toBe(EXPECTED_RESULT.ASSOCIATION['50']); - - await page.getByText(translations.label_pay_subsidy_percentage_2.fi.replace(replaceValue, PAY_SUBSIDY_PERCENTAGES[1]), {exact: true}).click(); - await page.getByRole('button', { name: 'Laske arvio' }).click({force: true}); - expect(await page.locator(resultSelector).textContent()).toBe(EXPECTED_RESULT.ASSOCIATION['70']); -}); \ No newline at end of file diff --git a/src/js/calculator/helsinki_benefit_amount_estimate/tests/specs/results.spec.js b/src/js/calculator/helsinki_benefit_amount_estimate/tests/specs/results.spec.js new file mode 100644 index 0000000000..9259b7ca8b --- /dev/null +++ b/src/js/calculator/helsinki_benefit_amount_estimate/tests/specs/results.spec.js @@ -0,0 +1,160 @@ +import { test } from '@playwright/test'; +import { + selectPaySubsidyPercentageOption1, + selectPaySubsidyPercentageOption2, + checkAssociationHasBusinessActivities, + selectCompanyTypeBusiness, + selectCompanyTypeAssociation, + selectPaySubsidyGranted, + selectPaySubsidyNotGranted, + clickResultsButton, + fillVacationMoney, + fillMonthlyPay, + expectResult, +} from '../fixtures/input'; + +const TEST_CASES = [ + { + NAME: 'low', + MONTLY_PAY: '400', + VACATION_MONEY: '16', + BUSINESS_ACTIVITIES: { + NONE: '252,00', + 50: '52,00', + 70: '224,00', + }, + ASSOCIATION: { + NONE: '504,00', + 50: '304,00', + 70: '224,00', + }, + }, + { + NAME: 'medium', + MONTLY_PAY: '1000', + VACATION_MONEY: '42', + BUSINESS_ACTIVITIES: { + NONE: '631,00', + 50: '131,00', + 70: '562,00', + }, + ASSOCIATION: { + NONE: '800,00', + 50: '762,00', + 70: '562,00', + }, + }, + { + NAME: 'high', + MONTLY_PAY: '2000', + VACATION_MONEY: '88', + BUSINESS_ACTIVITIES: { + NONE: '800,00', + 50: '264,00', + 70: '800,00', + }, + ASSOCIATION: { + NONE: '800,00', + 50: '800,00', + 70: '800,00', + }, + }, +]; + +test.beforeEach(async ({ page }) => { + await page.goto( + 'http://localhost:3001/src/js/calculator/helsinki_benefit_amount_estimate/helsinki-benefit-test.html', + ); +}); + +TEST_CASES.forEach((testCase) => { + test(`[Business, ${testCase.NAME}] Fill in form and check results (none)`, async ({ page }) => { + await fillMonthlyPay(page, testCase.MONTLY_PAY); + await fillVacationMoney(page, testCase.VACATION_MONEY); + await selectCompanyTypeBusiness(page); + await selectPaySubsidyNotGranted(page); + await clickResultsButton(page); + expectResult(page, testCase.BUSINESS_ACTIVITIES.NONE); + }); + + test(`[Business, ${testCase.NAME}] Fill in form and check results (50)`, async ({ page }) => { + await fillMonthlyPay(page, testCase.MONTLY_PAY); + await fillVacationMoney(page, testCase.VACATION_MONEY); + await selectCompanyTypeBusiness(page); + await selectPaySubsidyGranted(page); + await selectPaySubsidyPercentageOption1(page); + await clickResultsButton(page); + expectResult(page, testCase.BUSINESS_ACTIVITIES['50']); + }); + + test(`[Business, ${testCase.NAME}] Fill in form and check results (70)`, async ({ page }) => { + await fillMonthlyPay(page, testCase.MONTLY_PAY); + await fillVacationMoney(page, testCase.VACATION_MONEY); + await selectCompanyTypeBusiness(page); + await selectPaySubsidyGranted(page); + await selectPaySubsidyPercentageOption2(page); + await clickResultsButton(page); + expectResult(page, testCase.BUSINESS_ACTIVITIES['70']); + }); + + test(`[Association, ${testCase.NAME}: business] Fill in form and check results (none)`, async ({ page }) => { + await fillMonthlyPay(page, testCase.MONTLY_PAY); + await fillVacationMoney(page, testCase.VACATION_MONEY); + await selectCompanyTypeAssociation(page); + await checkAssociationHasBusinessActivities(page); + await selectPaySubsidyNotGranted(page); + await clickResultsButton(page); + expectResult(page, testCase.BUSINESS_ACTIVITIES.NONE); + }); + + test(`[Association, ${testCase.NAME}: business] Fill in form and check results (50)`, async ({ page }) => { + await fillMonthlyPay(page, testCase.MONTLY_PAY); + await fillVacationMoney(page, testCase.VACATION_MONEY); + await selectCompanyTypeAssociation(page); + await checkAssociationHasBusinessActivities(page); + await selectPaySubsidyGranted(page); + await selectPaySubsidyPercentageOption1(page); + await clickResultsButton(page); + expectResult(page, testCase.BUSINESS_ACTIVITIES['50']); + }); + + test(`[Association, ${testCase.NAME}: business] Fill in form and check results (70)`, async ({ page }) => { + await fillMonthlyPay(page, testCase.MONTLY_PAY); + await fillVacationMoney(page, testCase.VACATION_MONEY); + await selectCompanyTypeAssociation(page); + await checkAssociationHasBusinessActivities(page); + await selectPaySubsidyGranted(page); + await selectPaySubsidyPercentageOption2(page); + await clickResultsButton(page); + expectResult(page, testCase.BUSINESS_ACTIVITIES['70']); + }); + + test(`[Association, ${testCase.NAME}] Fill in form and check results (none)`, async ({ page }) => { + await fillMonthlyPay(page, testCase.MONTLY_PAY); + await fillVacationMoney(page, testCase.VACATION_MONEY); + await selectCompanyTypeAssociation(page); + await selectPaySubsidyNotGranted(page); + await clickResultsButton(page); + expectResult(page, testCase.ASSOCIATION.NONE); + }); + + test(`[Association, ${testCase.NAME}] Fill in form and check results (50)`, async ({ page }) => { + await fillMonthlyPay(page, testCase.MONTLY_PAY); + await fillVacationMoney(page, testCase.VACATION_MONEY); + await selectCompanyTypeAssociation(page); + await selectPaySubsidyGranted(page); + await selectPaySubsidyPercentageOption1(page); + await clickResultsButton(page); + expectResult(page, testCase.ASSOCIATION['50']); + }); + + test(`[Association, ${testCase.NAME}] Fill in form and check results (70)`, async ({ page }) => { + await fillMonthlyPay(page, testCase.MONTLY_PAY); + await fillVacationMoney(page, testCase.VACATION_MONEY); + await selectCompanyTypeAssociation(page); + await selectPaySubsidyGranted(page); + await selectPaySubsidyPercentageOption2(page); + await clickResultsButton(page); + expectResult(page, testCase.ASSOCIATION['70']); + }); +});