Skip to content

Commit 1ae930f

Browse files
committed
Use fixtures and useMocks option to set up mocks
1 parent 62d3963 commit 1ae930f

File tree

6 files changed

+17
-54
lines changed

6 files changed

+17
-54
lines changed

eslint.config.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ export default [
1313
'@nx/enforce-module-boundaries': [
1414
'error',
1515
{
16-
enforceBuildableLibDependency: true,
16+
enforceBuildableLibDependency: false,
1717
allow: ['^.*/eslint(\\.base)?\\.config\\.[cm]?js$'],
1818
depConstraints: [
1919
{
Lines changed: 14 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,32 @@
11
import { test as baseTest } from '@playwright/test';
2-
import {
3-
TransactionFixture,
4-
TransactionsListDataType,
5-
TransactionDetailsDataType,
6-
} from '../model';
2+
import { TransactionFixture } from '../model';
73
import { TransactionDetailsPage, TransactionsPage } from '../page-objects';
8-
import {
9-
addTransactionsToMock,
10-
defaultTransactionsMock,
11-
setupPageMocks,
12-
} from '../mocks';
4+
import { defaultTransactionsMock, setupPageMocks } from '../mocks';
135
import { MakeTransferPage } from '../page-objects/pages/make-transfer';
146

157
export const test = baseTest.extend<TransactionFixture>({
16-
// mocks data setup, can be overridden or bypassed via "useMocks"
17-
transactionMockSetup: async ({ page }, use) =>
18-
await use((transactions: Partial<TransactionDetailsDataType>[]) =>
19-
setupPageMocks(page, addTransactionsToMock(transactions))
20-
),
21-
transactionsMockSetup: async ({ page }, use) =>
22-
use((transactions: TransactionsListDataType) =>
23-
setupPageMocks(page, defaultTransactionsMock)
24-
),
8+
// TODO: Is this being used? Delete if not
259
makeTransferPage: async ({ page, baseURL }, use) => {
2610
await use(new MakeTransferPage(page, { baseURL, url: '/make-transfer' }));
2711
},
28-
transactionDetailsPage: async ({ page, baseURL }, use) => {
12+
13+
transactionDetailsPage: async ({ page, baseURL, useMocks }, use) => {
14+
if (useMocks) {
15+
setupPageMocks(page, defaultTransactionsMock);
16+
}
17+
2918
await use(
3019
new TransactionDetailsPage(page, {
3120
baseURL,
3221
url: '/transactions/{id}',
3322
})
3423
);
3524
},
36-
transactionsPage: async ({ page, baseURL }, use) => {
25+
26+
transactionsPage: async ({ page, baseURL, useMocks }, use) => {
27+
if (useMocks) {
28+
setupPageMocks(page, defaultTransactionsMock);
29+
}
3730
await use(new TransactionsPage(page, { baseURL, url: '/transactions' }));
3831
},
3932
});

libs/transactions-journey/e2e-tests/mocks/index.ts

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -42,23 +42,3 @@ export function setupPageMocks(page: Page, mocks: Record<string, unknown>) {
4242
}
4343
});
4444
}
45-
46-
export function addTransactionsToMock(
47-
transactions: Partial<TransactionDetailsDataType>[]
48-
) {
49-
for (const transaction of transactions) {
50-
const transactionsList = loadMockFile<{ id: string }[]>(
51-
'./transactions-list.json'
52-
);
53-
const newTransaction = createTransactionDetailsForMock(transaction);
54-
const existingIndex = transactionsList.findIndex(
55-
(t) => t.id === newTransaction.id
56-
);
57-
const indexToUpdate =
58-
existingIndex >= 0 ? existingIndex : transactionsList.length;
59-
transactionsList[indexToUpdate] = newTransaction;
60-
writeMockFile('./transactions-list.json', transactionsList);
61-
}
62-
63-
return defaultTransactionsMock;
64-
}

libs/transactions-journey/e2e-tests/model/transaction.ts

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,15 +35,10 @@ export interface TransactionDetailsDataType {
3535

3636
export interface TransactionFixture {
3737
visual: VisualValidator;
38-
transactionMockSetup: (
39-
transactions: Partial<TransactionDetailsDataType>[]
40-
) => void | Promise<void>;
41-
transactionsMockSetup: (
42-
transaction: TransactionsListDataType
43-
) => void | Promise<void>;
4438
makeTransferPage: MakeTransferPage;
4539
transactionDetailsPage: TransactionDetailsPage;
4640
transactionsPage: TransactionsPage;
41+
useMocks: boolean;
4742
}
4843

4944
export const getAmountValue = (

libs/transactions-journey/e2e-tests/specs/transaction-details.spec.ts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,6 @@ export function testTransactionDetails(
2222
],
2323
},
2424
() => {
25-
test.beforeEach(async ({ transactionMockSetup }) => {
26-
await transactionMockSetup(testData.transactions);
27-
});
28-
2925
for (const transaction of testData.transactions) {
3026
test(`[getDetails] should display correct transaction details (id: ${transaction.id}; name: ${transaction.recipient})`, async ({
3127
transactionDetailsPage,

libs/transactions-journey/e2e-tests/specs/transactions-list.spec.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,7 @@ export function testTransactionsList(
1010
'Transactions list',
1111
{ tag: ['@e2e', '@transactions', '@transactions-details', '@mocks'] },
1212
() => {
13-
test.beforeEach(async ({ transactionsPage, transactionsMockSetup }) => {
14-
await transactionsMockSetup(testData.transactionList);
13+
test.beforeEach(async ({ transactionsPage }) => {
1514
await transactionsPage.open();
1615
});
1716

0 commit comments

Comments
 (0)