From 7567997dbf6a0ae00aa0a88c466c1d0ee83a75bc Mon Sep 17 00:00:00 2001 From: Ronald Langeveld Date: Thu, 8 Dec 2022 12:27:41 +0700 Subject: [PATCH] Added Playwright test for member exports ref https://github.com/TryGhost/Team/issues/2371 - Tests whether a CSV can be exported with all members --- .../test/e2e-browser/admin/members.spec.js | 40 ++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/ghost/core/test/e2e-browser/admin/members.spec.js b/ghost/core/test/e2e-browser/admin/members.spec.js index f1ab3ab2e9..f3675f673f 100644 --- a/ghost/core/test/e2e-browser/admin/members.spec.js +++ b/ghost/core/test/e2e-browser/admin/members.spec.js @@ -1,5 +1,5 @@ const {expect, test} = require('@playwright/test'); -const e = require('express'); +const {createMember} = require('../utils/e2e-browser-utils'); test.describe('Admin', () => { test.describe('Members', () => { @@ -85,5 +85,43 @@ test.describe('Admin', () => { // should have no members now, so we should see the empty state expect(await page.locator('div h4:has-text("Start building your audience")')).not.toBeNull(); }); + + // load 3 members + const membersFixture = [ + { + name: 'Test Member 1', + email: 'test@member1.com', + note: 'This is a test member', + label: 'Test Label' + }, + { + name: 'Test Member 2', + email: 'test@member2.com', + note: 'This is a test member', + label: 'Test Label' + }, + { + name: 'Test Member 3', + email: 'test@member3.com', + note: 'This is a test member', + label: 'Test Label' + } + ]; + + test('All members can be exported', async ({page}) => { + for (let member of membersFixture) { + await createMember(page, member); + } + await page.locator('.gh-nav a[href="#/members/"]').click(); + await page.waitForSelector('button[data-test-button="members-actions"]'); + await page.locator('button[data-test-button="members-actions"]').click(); + await page.waitForSelector('button[data-test-button="export-members"]'); + const [download] = await Promise.all([ + page.waitForEvent('download'), + page.locator('button[data-test-button="export-members"]').click() + ]); + const filename = await download.suggestedFilename(); + expect(filename).toContain('.csv'); + }); }); });