From 88c8bf7dbc9d2bc024fc0290c5eadbd26e41b89d Mon Sep 17 00:00:00 2001 From: Kevin Ansfield Date: Thu, 8 Dec 2022 12:17:31 +0000 Subject: [PATCH] Added `compedPlan` option to `createMember` test util refs https://github.com/TryGhost/Team/issues/2371 Usage: ``` await createTier(page, {name: 'Silver', monthlyPrice: 5, yearlyPrice: 50}); await createMember(page, {email: 'silver@example.com', compedPlan: 'Silver'}); ``` --- .../e2e-browser/utils/e2e-browser-utils.js | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/ghost/core/test/e2e-browser/utils/e2e-browser-utils.js b/ghost/core/test/e2e-browser/utils/e2e-browser-utils.js index 1e66ebdd3f..1b5bf89005 100644 --- a/ghost/core/test/e2e-browser/utils/e2e-browser-utils.js +++ b/ghost/core/test/e2e-browser/utils/e2e-browser-utils.js @@ -257,7 +257,16 @@ const completeStripeSubscription = async (page) => { await page.getByTestId('hosted-payment-submit-button').click(); }; -const createMember = async (page, {email, name, note, label = ''}) => { +/** + * @param {import('@playwright/test').Page} page + * @param {Object} options + * @param {String} options.email + * @param {String} [options.name] + * @param {String} [options.note] + * @param {String} [options.label] + * @param {String} [options.compedPlan] + */ +const createMember = async (page, {email, name, note, label = '', compedPlan}) => { await page.goto('/ghost'); await page.locator('.gh-nav a[href="#/members/"]').click(); await page.waitForSelector('a[href="#/members/new/"] span'); @@ -279,8 +288,16 @@ const createMember = async (page, {email, name, note, label = ''}) => { await page.keyboard.type(label); await page.keyboard.press('Tab'); } + await page.locator('button span:has-text("Save")').click(); await page.waitForSelector('button span:has-text("Saved")'); + + if (compedPlan) { + await page.locator('[data-test-button="add-complimentary"]').click(); + // TODO: switch [data-test-modal="add-complimentary"] and better plan selector once modal is refactored + await page.locator('.fullscreen-modal h4').getByText(compedPlan).click(); + await page.locator('[data-test-button="save-comp-tier"]').click(); + } }; module.exports = {