SMS Fraud use case demo INTER-596 #210
ci.yml
on: pull_request
Lint
17s
Unit tests
11s
Matrix: Playwright e2e tests
Annotations
21 errors and 3 notices
[chromium] › sms-fraud/bot-protected.spec.ts:9:7 › Sending verification SMS messages › is not possible as a bot with Bot detection on:
e2e/e2eTestUtils.ts#L21
1) [chromium] › sms-fraud/bot-protected.spec.ts:9:7 › Sending verification SMS messages › is not possible as a bot with Bot detection on
Error: expect(locator).toHaveAttribute(expected)
Locator: getByTestId('alert').first()
Expected string: "error"
Received string: ""
Call log:
- expect.toHaveAttribute with timeout 5000ms
- waiting for getByTestId('alert').first()
at e2eTestUtils.ts:21
19 | export async function assertAlert({ page, severity, text, index = 0 }: AssertAlertOrSnackbarArgs) {
20 | const alert = await page.getByTestId(TEST_IDS.common.alert).nth(index);
> 21 | await expect(alert).toHaveAttribute(TEST_ATTRIBUTES.severity, severity);
| ^
22 | await expect(alert).toContainText(text);
23 | }
24 |
at assertAlert (/home/runner/work/fingerprintjs-pro-use-cases/fingerprintjs-pro-use-cases/e2e/e2eTestUtils.ts:21:23)
|
[chromium] › sms-fraud/bot-protected.spec.ts:9:7 › Sending verification SMS messages › is not possible as a bot with Bot detection on:
e2e/e2eTestUtils.ts#L21
1) [chromium] › sms-fraud/bot-protected.spec.ts:9:7 › Sending verification SMS messages › is not possible as a bot with Bot detection on
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: expect(locator).toHaveAttribute(expected)
Locator: getByTestId('alert').first()
Expected string: "error"
Received string: ""
Call log:
- expect.toHaveAttribute with timeout 5000ms
- waiting for getByTestId('alert').first()
at e2eTestUtils.ts:21
19 | export async function assertAlert({ page, severity, text, index = 0 }: AssertAlertOrSnackbarArgs) {
20 | const alert = await page.getByTestId(TEST_IDS.common.alert).nth(index);
> 21 | await expect(alert).toHaveAttribute(TEST_ATTRIBUTES.severity, severity);
| ^
22 | await expect(alert).toContainText(text);
23 | }
24 |
at assertAlert (/home/runner/work/fingerprintjs-pro-use-cases/fingerprintjs-pro-use-cases/e2e/e2eTestUtils.ts:21:23)
|
[chromium] › sms-fraud/bot-protected.spec.ts:9:7 › Sending verification SMS messages › is not possible as a bot with Bot detection on:
e2e/e2eTestUtils.ts#L21
1) [chromium] › sms-fraud/bot-protected.spec.ts:9:7 › Sending verification SMS messages › is not possible as a bot with Bot detection on
Retry #2 ───────────────────────────────────────────────────────────────────────────────────────
Error: expect(locator).toHaveAttribute(expected)
Locator: getByTestId('alert').first()
Expected string: "error"
Received string: ""
Call log:
- expect.toHaveAttribute with timeout 5000ms
- waiting for getByTestId('alert').first()
at e2eTestUtils.ts:21
19 | export async function assertAlert({ page, severity, text, index = 0 }: AssertAlertOrSnackbarArgs) {
20 | const alert = await page.getByTestId(TEST_IDS.common.alert).nth(index);
> 21 | await expect(alert).toHaveAttribute(TEST_ATTRIBUTES.severity, severity);
| ^
22 | await expect(alert).toContainText(text);
23 | }
24 |
at assertAlert (/home/runner/work/fingerprintjs-pro-use-cases/fingerprintjs-pro-use-cases/e2e/e2eTestUtils.ts:21:23)
|
Playwright e2e tests (1, 3)
Process completed with exit code 1.
|
[webkit] › sms-fraud/bot-protected.spec.ts:9:7 › Sending verification SMS messages › is not possible as a bot with Bot detection on:
e2e/e2eTestUtils.ts#L21
1) [webkit] › sms-fraud/bot-protected.spec.ts:9:7 › Sending verification SMS messages › is not possible as a bot with Bot detection on
Error: expect(locator).toHaveAttribute(expected)
Locator: getByTestId('alert').first()
Expected string: "error"
Received string: ""
Call log:
- expect.toHaveAttribute with timeout 5000ms
- waiting for getByTestId('alert').first()
at e2eTestUtils.ts:21
19 | export async function assertAlert({ page, severity, text, index = 0 }: AssertAlertOrSnackbarArgs) {
20 | const alert = await page.getByTestId(TEST_IDS.common.alert).nth(index);
> 21 | await expect(alert).toHaveAttribute(TEST_ATTRIBUTES.severity, severity);
| ^
22 | await expect(alert).toContainText(text);
23 | }
24 |
at assertAlert (/home/runner/work/fingerprintjs-pro-use-cases/fingerprintjs-pro-use-cases/e2e/e2eTestUtils.ts:21:23)
|
[webkit] › sms-fraud/bot-protected.spec.ts:9:7 › Sending verification SMS messages › is not possible as a bot with Bot detection on:
e2e/e2eTestUtils.ts#L21
1) [webkit] › sms-fraud/bot-protected.spec.ts:9:7 › Sending verification SMS messages › is not possible as a bot with Bot detection on
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: expect(locator).toHaveAttribute(expected)
Locator: getByTestId('alert').first()
Expected string: "error"
Received string: ""
Call log:
- expect.toHaveAttribute with timeout 5000ms
- waiting for getByTestId('alert').first()
at e2eTestUtils.ts:21
19 | export async function assertAlert({ page, severity, text, index = 0 }: AssertAlertOrSnackbarArgs) {
20 | const alert = await page.getByTestId(TEST_IDS.common.alert).nth(index);
> 21 | await expect(alert).toHaveAttribute(TEST_ATTRIBUTES.severity, severity);
| ^
22 | await expect(alert).toContainText(text);
23 | }
24 |
at assertAlert (/home/runner/work/fingerprintjs-pro-use-cases/fingerprintjs-pro-use-cases/e2e/e2eTestUtils.ts:21:23)
|
[webkit] › sms-fraud/bot-protected.spec.ts:9:7 › Sending verification SMS messages › is not possible as a bot with Bot detection on:
e2e/e2eTestUtils.ts#L21
1) [webkit] › sms-fraud/bot-protected.spec.ts:9:7 › Sending verification SMS messages › is not possible as a bot with Bot detection on
Retry #2 ───────────────────────────────────────────────────────────────────────────────────────
Error: expect(locator).toHaveAttribute(expected)
Locator: getByTestId('alert').first()
Expected string: "error"
Received string: ""
Call log:
- expect.toHaveAttribute with timeout 5000ms
- waiting for getByTestId('alert').first()
at e2eTestUtils.ts:21
19 | export async function assertAlert({ page, severity, text, index = 0 }: AssertAlertOrSnackbarArgs) {
20 | const alert = await page.getByTestId(TEST_IDS.common.alert).nth(index);
> 21 | await expect(alert).toHaveAttribute(TEST_ATTRIBUTES.severity, severity);
| ^
22 | await expect(alert).toContainText(text);
23 | }
24 |
at assertAlert (/home/runner/work/fingerprintjs-pro-use-cases/fingerprintjs-pro-use-cases/e2e/e2eTestUtils.ts:21:23)
|
[webkit] › sms-fraud/bot-unprotected.spec.ts:35:7 › Sending verification SMS messages › allows user to create an account with the correct code:
e2e/sms-fraud/bot-unprotected.spec.ts#L43
2) [webkit] › sms-fraud/bot-unprotected.spec.ts:35:7 › Sending verification SMS messages › allows user to create an account with the correct code
Error: page.evaluate: NotAllowedError: The request is not allowed by the user agent or the platform in the current context, possibly because the user denied permission.
41 | await page.getByTestId(TEST_IDS.smsFraud.copyCodeButton).click();
42 |
> 43 | await page.getByTestId(TEST_IDS.smsFraud.codeInput).fill(await page.evaluate('navigator.clipboard.readText()'));
| ^
44 | await page.getByTestId(TEST_IDS.smsFraud.sendCode).click();
45 |
46 | await assertAlert({ page, severity: 'success', text: SMS_FRAUD_COPY.accountCreated, index: 1 });
at /home/runner/work/fingerprintjs-pro-use-cases/fingerprintjs-pro-use-cases/e2e/sms-fraud/bot-unprotected.spec.ts:43:73
|
[webkit] › sms-fraud/bot-unprotected.spec.ts:35:7 › Sending verification SMS messages › allows user to create an account with the correct code:
e2e/sms-fraud/bot-unprotected.spec.ts#L43
2) [webkit] › sms-fraud/bot-unprotected.spec.ts:35:7 › Sending verification SMS messages › allows user to create an account with the correct code
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: page.evaluate: NotAllowedError: The request is not allowed by the user agent or the platform in the current context, possibly because the user denied permission.
41 | await page.getByTestId(TEST_IDS.smsFraud.copyCodeButton).click();
42 |
> 43 | await page.getByTestId(TEST_IDS.smsFraud.codeInput).fill(await page.evaluate('navigator.clipboard.readText()'));
| ^
44 | await page.getByTestId(TEST_IDS.smsFraud.sendCode).click();
45 |
46 | await assertAlert({ page, severity: 'success', text: SMS_FRAUD_COPY.accountCreated, index: 1 });
at /home/runner/work/fingerprintjs-pro-use-cases/fingerprintjs-pro-use-cases/e2e/sms-fraud/bot-unprotected.spec.ts:43:73
|
[webkit] › sms-fraud/bot-unprotected.spec.ts:35:7 › Sending verification SMS messages › allows user to create an account with the correct code:
e2e/sms-fraud/bot-unprotected.spec.ts#L43
2) [webkit] › sms-fraud/bot-unprotected.spec.ts:35:7 › Sending verification SMS messages › allows user to create an account with the correct code
Retry #2 ───────────────────────────────────────────────────────────────────────────────────────
Error: page.evaluate: NotAllowedError: The request is not allowed by the user agent or the platform in the current context, possibly because the user denied permission.
41 | await page.getByTestId(TEST_IDS.smsFraud.copyCodeButton).click();
42 |
> 43 | await page.getByTestId(TEST_IDS.smsFraud.codeInput).fill(await page.evaluate('navigator.clipboard.readText()'));
| ^
44 | await page.getByTestId(TEST_IDS.smsFraud.sendCode).click();
45 |
46 | await assertAlert({ page, severity: 'success', text: SMS_FRAUD_COPY.accountCreated, index: 1 });
at /home/runner/work/fingerprintjs-pro-use-cases/fingerprintjs-pro-use-cases/e2e/sms-fraud/bot-unprotected.spec.ts:43:73
|
Playwright e2e tests (3, 3)
Process completed with exit code 1.
|
[firefox] › coupon-fraud.spec.ts:20:7 › Coupon fraud › should not allow to claim coupon that does not exist:
e2e/coupon-fraud.spec.ts#L1
1) [firefox] › coupon-fraud.spec.ts:20:7 › Coupon fraud › should not allow to claim coupon that does not exist
Error: browser.newContext: Unknown permission: clipboard-read
|
[firefox] › coupon-fraud.spec.ts:20:7 › Coupon fraud › should not allow to claim coupon that does not exist:
e2e/coupon-fraud.spec.ts#L1
1) [firefox] › coupon-fraud.spec.ts:20:7 › Coupon fraud › should not allow to claim coupon that does not exist
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: browser.newContext: Unknown permission: clipboard-read
|
[firefox] › coupon-fraud.spec.ts:20:7 › Coupon fraud › should not allow to claim coupon that does not exist:
e2e/coupon-fraud.spec.ts#L1
1) [firefox] › coupon-fraud.spec.ts:20:7 › Coupon fraud › should not allow to claim coupon that does not exist
Retry #2 ───────────────────────────────────────────────────────────────────────────────────────
Error: browser.newContext: Unknown permission: clipboard-read
|
[firefox] › coupon-fraud.spec.ts:27:7 › Coupon fraud › should apply correct coupon only once:
e2e/coupon-fraud.spec.ts#L1
2) [firefox] › coupon-fraud.spec.ts:27:7 › Coupon fraud › should apply correct coupon only once ──
Error: browser.newContext: Unknown permission: clipboard-read
|
[firefox] › coupon-fraud.spec.ts:27:7 › Coupon fraud › should apply correct coupon only once:
e2e/coupon-fraud.spec.ts#L1
2) [firefox] › coupon-fraud.spec.ts:27:7 › Coupon fraud › should apply correct coupon only once ──
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: browser.newContext: Unknown permission: clipboard-read
|
[firefox] › coupon-fraud.spec.ts:27:7 › Coupon fraud › should apply correct coupon only once:
e2e/coupon-fraud.spec.ts#L1
2) [firefox] › coupon-fraud.spec.ts:27:7 › Coupon fraud › should apply correct coupon only once ──
Retry #2 ───────────────────────────────────────────────────────────────────────────────────────
Error: browser.newContext: Unknown permission: clipboard-read
|
[firefox] › coupon-fraud.spec.ts:37:7 › Coupon fraud › should prevent spamming multiple coupons:
e2e/coupon-fraud.spec.ts#L1
3) [firefox] › coupon-fraud.spec.ts:37:7 › Coupon fraud › should prevent spamming multiple coupons
Error: browser.newContext: Unknown permission: clipboard-read
|
[firefox] › coupon-fraud.spec.ts:37:7 › Coupon fraud › should prevent spamming multiple coupons:
e2e/coupon-fraud.spec.ts#L1
3) [firefox] › coupon-fraud.spec.ts:37:7 › Coupon fraud › should prevent spamming multiple coupons
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: browser.newContext: Unknown permission: clipboard-read
|
[firefox] › coupon-fraud.spec.ts:37:7 › Coupon fraud › should prevent spamming multiple coupons:
e2e/coupon-fraud.spec.ts#L1
3) [firefox] › coupon-fraud.spec.ts:37:7 › Coupon fraud › should prevent spamming multiple coupons
Retry #2 ───────────────────────────────────────────────────────────────────────────────────────
Error: browser.newContext: Unknown permission: clipboard-read
|
[firefox] › credential-stuffing.spec.ts:17:7 › Credential stuffing › should prevent login even with correct credentials:
e2e/credential-stuffing.spec.ts#L1
4) [firefox] › credential-stuffing.spec.ts:17:7 › Credential stuffing › should prevent login even with correct credentials
Error: browser.newContext: Unknown permission: clipboard-read
|
🎭 Playwright Run Summary
1 failed
[chromium] › sms-fraud/bot-protected.spec.ts:9:7 › Sending verification SMS messages › is not possible as a bot with Bot detection on
32 passed (2.6m)
|
🎭 Playwright Run Summary
2 failed
[webkit] › sms-fraud/bot-protected.spec.ts:9:7 › Sending verification SMS messages › is not possible as a bot with Bot detection on
[webkit] › sms-fraud/bot-unprotected.spec.ts:35:7 › Sending verification SMS messages › allows user to create an account with the correct code
1 skipped
30 passed (2.9m)
|
🎭 Playwright Run Summary
30 failed
[firefox] › coupon-fraud.spec.ts:20:7 › Coupon fraud › should not allow to claim coupon that does not exist
[firefox] › coupon-fraud.spec.ts:27:7 › Coupon fraud › should apply correct coupon only once ───
[firefox] › coupon-fraud.spec.ts:37:7 › Coupon fraud › should prevent spamming multiple coupons
[firefox] › credential-stuffing.spec.ts:17:7 › Credential stuffing › should prevent login even with correct credentials
[firefox] › credential-stuffing.spec.ts:22:7 › Credential stuffing › should lock user after 5 invalid login attempts
[firefox] › home.spec.ts:5:7 › Home page › should list cards with use-cases ────────────────────
[firefox] › home.spec.ts:11:7 › Home page › Entire cards should be clickable, clicking on the description or image should take you to the use case
[firefox] › loan-risk.spec.ts:24:7 › Loan risk › should correctly calculate loan and approve it on first submit
[firefox] › loan-risk.spec.ts:34:7 › Loan risk › should approve loan if only loan value or loan duration changes
[firefox] › loan-risk.spec.ts:62:9 › Loan risk › should not approve loan if name changes after first submit
[firefox] › loan-risk.spec.ts:62:9 › Loan risk › should not approve loan if surname changes after first submit
[firefox] › loan-risk.spec.ts:62:9 › Loan risk › should not approve loan if monthlyIncome changes after first submit
[firefox] › payment-fraud.spec.ts:24:7 › Payment fraud › should pass payment with prefilled details
[firefox] › payment-fraud.spec.ts:28:7 › Payment fraud › should allow only two chargebacks ─────
[firefox] › payment-fraud.spec.ts:37:7 › Payment fraud › should prevent card cracking after 3 attempts
[firefox] › payment-fraud.spec.ts:47:7 › Payment fraud › should prevent another purchase if card was flagged as stolen
[firefox] › paywall.spec.ts:12:7 › Paywall › Should show two articles, then show a paywall ─────
[firefox] › personalization.spec.ts:15:7 › Personalization › should add and remove items from cart
[firefox] › personalization.spec.ts:53:7 › Personalization › should remember cart contents after reloading page
[firefox] › personalization.spec.ts:69:7 › Personalization › should filter products and remember search history
[firefox] › playground.spec.ts:30:7 › Playground page › Page renders basic skeleton elements ───
[firefox] › playground.spec.ts:43:7 › Playground page › Page renders signal tables ─────────────
[firefox] › playground.spec.ts:55:7 › Playground page › Page renders agent response ────────────
[firefox] › playground.spec.ts:60:7 › Playground page › Page renders server response ───────────
[firefox] › playground.spec.ts:65:7 › Playground page › Reload button updates agent response ───
[firefox] › playground.spec.ts:75:7 › Playground page › Reload button updates server response ──
[firefox] › playground.spec.ts:87:7 › Proxy integration › Proxy integration works on Playground, no network errors
[firefox] › scraping/bot-unprotected.spec.ts:13:7 › Scraping flights › is possible with Bot detection off
[firefox] › sms-fraud/bot-unprotected.spec.ts:18:7 › Sending verification SMS messages › is possible with Bot detection off, with cool down periods
[firefox] › sms-fraud/bot-unprotected.spec.ts:35:7 › Sending verification SMS messages › allows user to create an account with the correct code
3 skipped
|
Artifacts
Produced during runtime
Name | Size | |
---|---|---|
playwright-report-1
Expired
|
1.01 MB |
|
playwright-report-2
Expired
|
568 KB |
|
playwright-report-3
Expired
|
3.13 MB |
|