WOMMWorks On My Machine · onmymachineitworks.comSample · fictional data

Test report · Automated E2E regression

Playwright regression · Acme Ledger 4.2.0-rc3

Passed · 2 flaky
Pipeline
GitHub Actions · e2e-regression · run #1860
Commit
a41c9e2 (release/4.2)
Environment
Staging · 2 projects: Chromium 131, WebKit 18 · 4 shards
Executed
2026-10-23 08:05 – 08:17 UTC (12 min wall clock)
Retries
1 retry on failure (CI only)
Reviewed by
Tomasz Kordiak (QA lead)

Overview

99.6%first-try pass
528Tests
526Passed first try
0Failed
2Flaky (passed on retry)
53 min 31 sTotal test time
26Spec files
Authentication
24/24
Roles and permissions
60/60
Customers
52/52
Products
28/28
Invoices
107/108 · 1 flaky
Payments
38/38
Credit notes
16/16
Recurring invoices
21/22 · 1 flaky
Payment reminders
16/16
Reports
20/20
Customer portal
24/24
Settings
24/24
Webhooks
14/14
Users
20/20
Audit log
10/10
Dashboard
12/12
Search
10/10
Localisation
16/16
Accessibility
8/8
Visual regression
6/6

Run details

TriggerMerge to release/4.2 + nightly at 17:20 UTC
Test dataSeed script creates 3 tenants, 120 customers, 1,284 invoices before each run
IsolationEach test logs in with its own user; tests can run in any order
ArtifactsHTML report, traces and videos for failures and retries, kept 30 days
Shards#1: 13 min 14 s · #2: 13 min 42 s · #3: 13 min 04 s · #4: 13 min 32 s
Quality gateMerge blocked on any failure; flaky tests reported but not blocking

Flaky tests

Low invoices/create › sends invoice email Email assertion races the mail queue

History
Failed on first try in 3 of the last 10 runs; always passes on retry.
Root cause
The test checks the inbox right after Send; the mail job sometimes takes 4–6 s on staging.
Fix
Poll the inbox for up to 15 s. PR qa-e2e#212. Not a product defect.

Low recurring › creates next invoice at midnight Test depends on the shared staging clock

History
Failed on first try in 2 of the last 10 runs, both near the top of the hour.
Root cause
Another team's job changes the scheduler's time zone setting on staging.
Fix
Use the scheduler's now override. Quarantined until fixed; covered manually this release.
Test−9−8−7−6−5−4−3−2−1Now
invoices/create › sends invoice email✓✓retry✓✓retry✓✓retryretry
recurring › creates next invoice at midnight✓✓✓retry✓✓✓✓retryretry

Last 10 runs, oldest left. 'retry' = failed on the first try, passed on retry.

Defects found by the suite this release

KeySummarySeverityStatusComponentFound byOwnerCreated
ACME-512Expired invoices still listed and counted on dashboardHighFixedInvoicesinvoices/retentionBackend20 Oct
ACME-517Portal shows 'Pay' button on an invoice already paid by card (until refresh)MediumFixedCustomer portalportal/customer-portalFrontend20 Oct
ACME-518XLSX export: date column formatted as textLowFixedReportsreports/month-endBackend21 Oct
ACME-519Visual diff: totals block shifted 4 px on invoice editor in German
Cosmetic; baseline kept, fix in 4.2.1.
LowDeferredInvoices UIvisualFrontend21 Oct
QA-212Test: email assertion races the mail queue
Test defect, not a product bug.
LowIn progressTest suiteinvoices/createQA22 Oct
QA-213Test: scheduler test depends on shared staging clock
Test defect; quarantined, covered manually.
LowOpenTest suiterecurringQA22 Oct

Observations

IDAreaObservationImpactSuggested action
OBS-01SpeedTotal test time 53 min 31 s; wall clock 12 min on 4 shards. Shards are uneven because PDF tests cluster.CI timeRebalance shards by duration using Playwright timing data.
OBS-02CoverageSettings → Integrations has 4 tests; the API suite covers the rest.LowFine for now.
OBS-03DuplicationCurrency and VAT combinations in invoices/create overlap with API checks.CI timeMove combinations to API level, keep 3 in E2E.
OBS-04StabilityNo test needed more than 1 retry; 0 tests are skipped or marked .fixme.PositiveKeep the 'no skipped tests' rule.
OBS-05Visual6 visual baselines updated this release, all reviewed in the PR.None–
OBS-06Accessibilityaxe checks compare 8 key pages with a baseline of 41 known violations (see the accessibility report); any new violation fails the build.InfoShrink the baseline as the accessibility fixes land.

Results by browser

ProjectTestsPassedFlakyTest time
Chromium271269226 min 04 s
WebKit257257–27 min 27 s

Results by spec

SpecAreaTestsPassedFlakyDurationResult
auth/login.spec.tsAuthentication2424–2 min 02 sPass
auth/roles.spec.tsRoles and permissions6060–5 min 25 sPass
customers/crud.spec.tsCustomers3636–3 min 25 sPass
customers/contacts.spec.tsCustomers1616–1 min 25 sPass
products/catalog.spec.tsProducts2828–2 min 52 sPass
invoices/create.spec.tsInvoices444314 min 28 sFlaky
invoices/list-filter.spec.tsInvoices3434–3 min 27 sPass
invoices/pdf.spec.tsInvoices2020–3 min 49 sPass
invoices/retention.spec.tsInvoices1010–1 min 03 sPass
payments/record.spec.tsPayments2626–2 min 44 sPass
payments/refund.spec.tsPayments1212–1 min 04 sPass
credit-notes.spec.tsCredit notes1616–1 min 45 sPass
recurring.spec.tsRecurring invoices222112 min 08 sFlaky
reminders.spec.tsPayment reminders1616–1 min 28 sPass
reports/month-end.spec.tsReports2020–2 min 23 sPass
portal/customer-portal.spec.tsCustomer portal2424–2 min 41 sPass
settings/company.spec.tsSettings1616–1 min 54 sPass
settings/integrations.spec.tsSettings88–0 min 51 sPass
webhooks-ui.spec.tsWebhooks1414–1 min 19 sPass
users/invite.spec.tsUsers2020–1 min 48 sPass
audit-log.spec.tsAudit log1010–0 min 50 sPass
dashboard.spec.tsDashboard1212–1 min 03 sPass
search.spec.tsSearch1010–0 min 53 sPass
i18n.spec.tsLocalisation1616–1 min 26 sPass
accessibility.spec.tsAccessibility88–0 min 37 sPass
visual.spec.tsVisual regression66–0 min 44 sPass

Coverage by feature area

Feature areaE2E testsXray requirementsCoveredCoverage
Authentication1244100%
Roles and permissions3099100%
Customers2688100%
Products144375%
Invoices541717100%
Payments1966100%
Credit notes833100%
Recurring invoices1133100%
Payment reminders83267%
Reports1033100%
Customer portal1244100%
Settings1244100%
Webhooks722100%
Users103267%
Audit log522100%
Dashboard622100%
Search522100%
Localisation833100%
Accessibility83267%
Visual regression622100%

Requirements are Xray requirement issues linked to at least one automated test. Uncovered ones are covered by manual or API tests.

Slowest tests

#SpecTestDuration
1invoices/pdf.spec.tsPDF layout · reverse charge note WebKit15.3 s
2reports/month-end.spec.tsrevenue report · year WebKit15.3 s
3invoices/create.spec.tsnotes appear on PDF Chromium15.0 s
4invoices/pdf.spec.tsPDF layout · with logo WebKit14.9 s
5portal/customer-portal.spec.tscustomer downloads PDF Chromium14.9 s
6payments/record.spec.tsreconcile from bank CSV WebKit14.8 s
7invoices/create.spec.tsadds 50 lines WebKit14.7 s
8invoices/pdf.spec.tsPDF layout · 20 lines WebKit14.5 s
9visual.spec.tsscreenshot matches · invoice PDF Chromium14.4 s
10invoices/list-filter.spec.tsbulk download PDFs WebKit14.3 s
11products/catalog.spec.tsrejects CSV with missing columns WebKit14.2 s
12portal/customer-portal.spec.tscustomer pays 3 invoices at once WebKit14.2 s
13products/catalog.spec.tsimports products from CSV Chromium14.1 s
14invoices/list-filter.spec.tsbulk download PDFs Chromium13.8 s
15recurring.spec.tsschedules · yearly Chromium13.6 s

Run history

RunStartedPassedFailedFlakyNotes
#1860 · rc323 Oct 08:05526/52802Release candidate
#1858 · rc322 Oct 17:21526/52802Nightly
#1855 · rc222 Oct 08:02527/52810Renamed button (test updated)
#1853 · rc221 Oct 15:40526/52802Nightly
#1849 · rc221 Oct 07:58525/52821ACME-512 related (2), flaky (1)
#1846 · rc120 Oct 17:30523/52841ACME-512 (3), ACME-517 (1)
#1841 · rc120 Oct 08:02522/52842First run of 4.2
#1832 · 4.1.316 Oct 08:01507/50902Before 4.2 tests were added

Every failure in the history was triaged the same day: product defects went to Jira, test defects to the QA board.

Changes to the suite

ChangeTestsWhy
Added invoices/retention.spec.ts+5ACME-488 data retention (new in 4.2)
Added recurring: preview, day 31 fallback+2ACME-441 follow-ups
Added portal: magic link, notes as text+2ACME-470, security finding SEC-02
Added payments: bank CSV reconciliation+2ACME-452
Added accessibility checks (axe) on 8 pages+8Accessibility audit recommendation
Planned: move currency combinations to API04.2.1 (OBS-03)

All tests 528 tests

auth/login.spec.ts

#TestProjectDurationRetriesResult
1logs in · email + passwordChromium1.6 s–Pass
2logs in · SSO (SAML)Chromium5.3 s–Pass
3rejects wrong password · email + passwordChromium2.0 s–Pass
4rejects wrong password · SSO (SAML)Chromium5.7 s–Pass
5locks after 5 failures · email + passwordChromium2.4 s–Pass
6locks after 5 failures · SSO (SAML)Chromium6.1 s–Pass
7remembers the last tenantChromium2.8 s–Pass
8logs out from all tabsChromium6.5 s–Pass
9password reset email arrivesChromium3.2 s–Pass
10reset link expires after 1 hChromium6.9 s–Pass
11MFA code required for adminsChromium3.6 s–Pass
12MFA backup code worksChromium7.3 s–Pass
13logs in · email + passwordWebKit4.6 s–Pass
14logs in · SSO (SAML)WebKit8.3 s–Pass
15rejects wrong password · email + passwordWebKit5.0 s–Pass
16rejects wrong password · SSO (SAML)WebKit8.7 s–Pass
17locks after 5 failures · email + passwordWebKit5.4 s–Pass
18locks after 5 failures · SSO (SAML)WebKit9.1 s–Pass
19remembers the last tenantWebKit5.8 s–Pass
20logs out from all tabsWebKit2.5 s–Pass
21password reset email arrivesWebKit6.2 s–Pass
22reset link expires after 1 hWebKit2.9 s–Pass
23MFA code required for adminsWebKit6.6 s–Pass
24MFA backup code worksWebKit3.3 s–Pass

auth/roles.spec.ts

#TestProjectDurationRetriesResult
1sees the invoices list · AdminChromium7.5 s–Pass
2sees the invoices list · FinanceChromium4.2 s–Pass
3sees the invoices list · AccountantChromium7.9 s–Pass
4sees the invoices list · SalesChromium4.6 s–Pass
5sees the invoices list · ViewerChromium8.3 s–Pass
6can create an invoice · AdminChromium5.0 s–Pass
7can create an invoice · FinanceChromium1.7 s–Pass
8can create an invoice · AccountantChromium5.4 s–Pass
9can create an invoice · SalesChromium2.1 s–Pass
10can create an invoice · ViewerChromium5.8 s–Pass
11can send an invoice · AdminChromium2.5 s–Pass
12can send an invoice · FinanceChromium6.2 s–Pass
13can send an invoice · AccountantChromium2.9 s–Pass
14can send an invoice · SalesChromium6.6 s–Pass
15can send an invoice · ViewerChromium3.3 s–Pass
16can record a payment · AdminChromium7.0 s–Pass
17can record a payment · FinanceChromium3.7 s–Pass
18can record a payment · AccountantChromium7.4 s–Pass
19can record a payment · SalesChromium4.1 s–Pass
20can record a payment · ViewerChromium7.8 s–Pass
21can open settings · AdminChromium4.5 s–Pass
22can open settings · FinanceChromium8.2 s–Pass
23can open settings · AccountantChromium4.9 s–Pass
24can open settings · SalesChromium1.6 s–Pass
25can open settings · ViewerChromium5.3 s–Pass
26can invite users · AdminChromium2.0 s–Pass
27can invite users · FinanceChromium5.7 s–Pass
28can invite users · AccountantChromium2.4 s–Pass
29can invite users · SalesChromium6.1 s–Pass
30can invite users · ViewerChromium2.8 s–Pass
31sees the invoices list · AdminWebKit7.1 s–Pass
32sees the invoices list · FinanceWebKit3.8 s–Pass
33sees the invoices list · AccountantWebKit7.5 s–Pass
34sees the invoices list · SalesWebKit4.2 s–Pass
35sees the invoices list · ViewerWebKit7.9 s–Pass
36can create an invoice · AdminWebKit4.6 s–Pass
37can create an invoice · FinanceWebKit8.3 s–Pass
38can create an invoice · AccountantWebKit5.0 s–Pass
39can create an invoice · SalesWebKit8.7 s–Pass
40can create an invoice · ViewerWebKit5.4 s–Pass
41can send an invoice · AdminWebKit9.1 s–Pass
42can send an invoice · FinanceWebKit5.8 s–Pass
43can send an invoice · AccountantWebKit2.5 s–Pass
44can send an invoice · SalesWebKit6.2 s–Pass
45can send an invoice · ViewerWebKit2.9 s–Pass
46can record a payment · AdminWebKit6.6 s–Pass
47can record a payment · FinanceWebKit3.3 s–Pass
48can record a payment · AccountantWebKit7.0 s–Pass
49can record a payment · SalesWebKit3.7 s–Pass
50can record a payment · ViewerWebKit7.4 s–Pass
51can open settings · AdminWebKit4.1 s–Pass
52can open settings · FinanceWebKit7.8 s–Pass
53can open settings · AccountantWebKit4.5 s–Pass
54can open settings · SalesWebKit8.2 s–Pass
55can open settings · ViewerWebKit4.9 s–Pass
56can invite users · AdminWebKit8.6 s–Pass
57can invite users · FinanceWebKit5.3 s–Pass
58can invite users · AccountantWebKit9.0 s–Pass
59can invite users · SalesWebKit5.7 s–Pass
60can invite users · ViewerWebKit2.4 s–Pass

customers/crud.spec.ts

#TestProjectDurationRetriesResult
1creates a customer · companyChromium6.6 s–Pass
2creates a customer · individualChromium3.3 s–Pass
3creates a customer · EU company with VATChromium7.0 s–Pass
4edits a customer · companyChromium3.7 s–Pass
5edits a customer · individualChromium7.4 s–Pass
6edits a customer · EU company with VATChromium4.1 s–Pass
7archives a customer · companyChromium7.8 s–Pass
8archives a customer · individualChromium4.5 s–Pass
9archives a customer · EU company with VATChromium8.2 s–Pass
10search by nameChromium4.9 s–Pass
11search by VAT numberChromium1.6 s–Pass
12filter by countryChromium5.3 s–Pass
13filter by tagChromium2.0 s–Pass
14export customers to CSVChromium12.2 s–Pass
15cannot delete a customer with open invoicesChromium2.4 s–Pass
16merges duplicatesChromium6.1 s–Pass
17shows invoice historyChromium2.8 s–Pass
18shows open balanceChromium6.5 s–Pass
19creates a customer · companyWebKit3.8 s–Pass
20creates a customer · individualWebKit7.5 s–Pass
21creates a customer · EU company with VATWebKit4.2 s–Pass
22edits a customer · companyWebKit7.9 s–Pass
23edits a customer · individualWebKit4.6 s–Pass
24edits a customer · EU company with VATWebKit8.3 s–Pass
25archives a customer · companyWebKit5.0 s–Pass
26archives a customer · individualWebKit8.7 s–Pass
27archives a customer · EU company with VATWebKit5.4 s–Pass
28search by nameWebKit9.1 s–Pass
29search by VAT numberWebKit5.8 s–Pass
30filter by countryWebKit2.5 s–Pass
31filter by tagWebKit6.2 s–Pass
32export customers to CSVWebKit9.4 s–Pass
33cannot delete a customer with open invoicesWebKit6.6 s–Pass
34merges duplicatesWebKit3.3 s–Pass
35shows invoice historyWebKit7.0 s–Pass
36shows open balanceWebKit3.7 s–Pass

customers/contacts.spec.ts

#TestProjectDurationRetriesResult
1adds a contactChromium7.9 s–Pass
2sets primary contactChromium4.6 s–Pass
3only one primary contactChromium8.3 s–Pass
4removes a contactChromium5.0 s–Pass
5contact email used on invoiceChromium1.7 s–Pass
6validates email formatChromium5.4 s–Pass
7phone number formattingChromium2.1 s–Pass
8billing vs technical contactChromium5.8 s–Pass
9adds a contactWebKit3.1 s–Pass
10sets primary contactWebKit6.8 s–Pass
11only one primary contactWebKit3.5 s–Pass
12removes a contactWebKit7.2 s–Pass
13contact email used on invoiceWebKit3.9 s–Pass
14validates email formatWebKit7.6 s–Pass
15phone number formattingWebKit4.3 s–Pass
16billing vs technical contactWebKit8.0 s–Pass

products/catalog.spec.ts

#TestProjectDurationRetriesResult
1creates a product · 23%Chromium5.2 s–Pass
2creates a product · 8%Chromium1.9 s–Pass
3creates a product · 5%Chromium5.6 s–Pass
4creates a product · 0% reverse chargeChromium2.3 s–Pass
5changes the price · 23%Chromium6.0 s–Pass
6changes the price · 8%Chromium2.7 s–Pass
7changes the price · 5%Chromium6.4 s–Pass
8changes the price · 0% reverse chargeChromium3.1 s–Pass
9archives a productChromium6.8 s–Pass
10SKU must be uniqueChromium3.5 s–Pass
11price history visibleChromium7.2 s–Pass
12search by SKUChromium3.9 s–Pass
13imports products from CSVChromium14.1 s–Pass
14rejects CSV with missing columnsChromium10.8 s–Pass
15creates a product · 23%WebKit8.6 s–Pass
16creates a product · 8%WebKit5.3 s–Pass
17creates a product · 5%WebKit9.0 s–Pass
18creates a product · 0% reverse chargeWebKit5.7 s–Pass
19changes the price · 23%WebKit2.4 s–Pass
20changes the price · 8%WebKit6.1 s–Pass
21changes the price · 5%WebKit2.8 s–Pass
22changes the price · 0% reverse chargeWebKit6.5 s–Pass
23archives a productWebKit3.2 s–Pass
24SKU must be uniqueWebKit6.9 s–Pass
25price history visibleWebKit3.6 s–Pass
26search by SKUWebKit7.3 s–Pass
27imports products from CSVWebKit10.5 s–Pass
28rejects CSV with missing columnsWebKit14.2 s–Pass

invoices/create.spec.ts

#TestProjectDurationRetriesResult
1creates an invoice · EURChromium4.9 s–Pass
2creates an invoice · USDChromium1.6 s–Pass
3creates an invoice · GBPChromium5.3 s–Pass
4creates an invoice · PLNChromium2.0 s–Pass
5creates an invoice · CHFChromium5.7 s–Pass
6applies VAT · 23%Chromium2.4 s–Pass
7applies VAT · 8%Chromium6.1 s–Pass
8applies VAT · 5%Chromium2.8 s–Pass
9applies VAT · 0% reverse chargeChromium6.5 s–Pass
10adds 50 linesChromium9.7 s–Pass
11line discountChromium6.9 s–Pass
12invoice discountChromium3.6 s–Pass
13rounding on 3 × €0.333Chromium7.3 s–Pass
14due date from payment termsChromium4.0 s–Pass
15custom invoice number seriesChromium7.7 s–Pass
16draft autosaveChromium4.4 s–Pass
17sends invoice emailChromium8.1 s1Flaky
18attaches extra PDFChromium11.3 s–Pass
19notes appear on PDFChromium15.0 s–Pass
20duplicate invoiceChromium5.2 s–Pass
21cannot edit a sent invoiceChromium1.9 s–Pass
22cancel a sent invoiceChromium5.6 s–Pass
23creates an invoice · EURWebKit2.9 s–Pass
24creates an invoice · USDWebKit6.6 s–Pass
25creates an invoice · GBPWebKit3.3 s–Pass
26creates an invoice · PLNWebKit7.0 s–Pass
27creates an invoice · CHFWebKit3.7 s–Pass
28applies VAT · 23%WebKit7.4 s–Pass
29applies VAT · 8%WebKit4.1 s–Pass
30applies VAT · 5%WebKit7.8 s–Pass
31applies VAT · 0% reverse chargeWebKit4.5 s–Pass
32adds 50 linesWebKit14.7 s–Pass
33line discountWebKit4.9 s–Pass
34invoice discountWebKit8.6 s–Pass
35rounding on 3 × €0.333WebKit5.3 s–Pass
36due date from payment termsWebKit9.0 s–Pass
37custom invoice number seriesWebKit5.7 s–Pass
38draft autosaveWebKit2.4 s–Pass
39sends invoice emailWebKit6.1 s–Pass
40attaches extra PDFWebKit9.3 s–Pass
41notes appear on PDFWebKit13.0 s–Pass
42duplicate invoiceWebKit3.2 s–Pass
43cannot edit a sent invoiceWebKit6.9 s–Pass
44cancel a sent invoiceWebKit3.6 s–Pass

invoices/list-filter.spec.ts

#TestProjectDurationRetriesResult
1filters by status · draftChromium7.8 s–Pass
2filters by status · sentChromium4.5 s–Pass
3filters by status · paidChromium8.2 s–Pass
4filters by status · overdueChromium4.9 s–Pass
5filters by status · cancelledChromium1.6 s–Pass
6filters by customerChromium5.3 s–Pass
7filters by issue dateChromium2.0 s–Pass
8filters by due dateChromium5.7 s–Pass
9filters by currencyChromium2.4 s–Pass
10combines filtersChromium6.1 s–Pass
11sorts by amountChromium2.8 s–Pass
12sorts by due dateChromium6.5 s–Pass
13pagination keeps filtersChromium3.2 s–Pass
14empty state messageChromium6.9 s–Pass
15bulk send 10 invoicesChromium10.1 s–Pass
16bulk download PDFsChromium13.8 s–Pass
17saved view persistsChromium4.0 s–Pass
18filters by status · draftWebKit8.3 s–Pass
19filters by status · sentWebKit5.0 s–Pass
20filters by status · paidWebKit8.7 s–Pass
21filters by status · overdueWebKit5.4 s–Pass
22filters by status · cancelledWebKit9.1 s–Pass
23filters by customerWebKit5.8 s–Pass
24filters by issue dateWebKit2.5 s–Pass
25filters by due dateWebKit6.2 s–Pass
26filters by currencyWebKit2.9 s–Pass
27combines filtersWebKit6.6 s–Pass
28sorts by amountWebKit3.3 s–Pass
29sorts by due dateWebKit7.0 s–Pass
30pagination keeps filtersWebKit3.7 s–Pass
31empty state messageWebKit7.4 s–Pass
32bulk send 10 invoicesWebKit10.6 s–Pass
33bulk download PDFsWebKit14.3 s–Pass
34saved view persistsWebKit4.5 s–Pass

invoices/pdf.spec.ts

#TestProjectDurationRetriesResult
1PDF layout · 1 lineChromium8.2 s–Pass
2PDF layout · 20 linesChromium11.9 s–Pass
3PDF layout · 50 lines (3 pages)Chromium8.6 s–Pass
4PDF layout · with logoChromium12.3 s–Pass
5PDF layout · with notesChromium9.0 s–Pass
6PDF layout · reverse charge noteChromium12.7 s–Pass
7PDF layout · foreign currencyChromium9.4 s–Pass
8PDF totals match screenChromium13.1 s–Pass
9PDF language follows customerChromium9.8 s–Pass
10PDF file name uses invoice numberChromium13.5 s–Pass
11PDF layout · 1 lineWebKit10.8 s–Pass
12PDF layout · 20 linesWebKit14.5 s–Pass
13PDF layout · 50 lines (3 pages)WebKit11.2 s–Pass
14PDF layout · with logoWebKit14.9 s–Pass
15PDF layout · with notesWebKit11.6 s–Pass
16PDF layout · reverse charge noteWebKit15.3 s–Pass
17PDF layout · foreign currencyWebKit12.0 s–Pass
18PDF totals match screenWebKit8.7 s–Pass
19PDF language follows customerWebKit12.4 s–Pass
20PDF file name uses invoice numberWebKit9.1 s–Pass

invoices/retention.spec.ts

#TestProjectDurationRetriesResult
1expired invoices hidden from listChromium6.8 s–Pass
2expired invoices excluded from totalsChromium3.5 s–Pass
3dashboard count excludes expiredChromium7.2 s–Pass
4retention setting per tenantChromium3.9 s–Pass
5retention change applies next nightChromium7.6 s–Pass
6expired invoices hidden from listWebKit4.9 s–Pass
7expired invoices excluded from totalsWebKit8.6 s–Pass
8dashboard count excludes expiredWebKit5.3 s–Pass
9retention setting per tenantWebKit9.0 s–Pass
10retention change applies next nightWebKit5.7 s–Pass

payments/record.spec.ts

#TestProjectDurationRetriesResult
1records a payment · bank transferChromium2.9 s–Pass
2records a payment · cardChromium6.6 s–Pass
3records a payment · cashChromium3.3 s–Pass
4records a payment · PayPalChromium7.0 s–Pass
5partial paymentChromium3.7 s–Pass
6two partial payments close the invoiceChromium7.4 s–Pass
7overpayment warningChromium4.1 s–Pass
8payment on cancelled invoice blockedChromium7.8 s–Pass
9payment date in the pastChromium4.5 s–Pass
10removes a paymentChromium8.2 s–Pass
11payment appears in customer balanceChromium4.9 s–Pass
12reconcile from bank CSVChromium8.1 s–Pass
13CSV with unknown reference goes to reviewChromium11.8 s–Pass
14records a payment · bank transferWebKit2.6 s–Pass
15records a payment · cardWebKit6.3 s–Pass
16records a payment · cashWebKit3.0 s–Pass
17records a payment · PayPalWebKit6.7 s–Pass
18partial paymentWebKit3.4 s–Pass
19two partial payments close the invoiceWebKit7.1 s–Pass
20overpayment warningWebKit3.8 s–Pass
21payment on cancelled invoice blockedWebKit7.5 s–Pass
22payment date in the pastWebKit4.2 s–Pass
23removes a paymentWebKit7.9 s–Pass
24payment appears in customer balanceWebKit4.6 s–Pass
25reconcile from bank CSVWebKit14.8 s–Pass
26CSV with unknown reference goes to reviewWebKit11.5 s–Pass

payments/refund.spec.ts

#TestProjectDurationRetriesResult
1full refundChromium2.2 s–Pass
2partial refundChromium5.9 s–Pass
3refund above paid blockedChromium2.6 s–Pass
4refund creates credit noteChromium6.3 s–Pass
5refund email to customerChromium3.0 s–Pass
6refund visible in reportChromium6.7 s–Pass
7full refundWebKit4.0 s–Pass
8partial refundWebKit7.7 s–Pass
9refund above paid blockedWebKit4.4 s–Pass
10refund creates credit noteWebKit8.1 s–Pass
11refund email to customerWebKit4.8 s–Pass
12refund visible in reportWebKit8.5 s–Pass

credit-notes.spec.ts

#TestProjectDurationRetriesResult
1credit one lineChromium5.7 s–Pass
2credit full invoiceChromium2.4 s–Pass
3credit above total blockedChromium6.1 s–Pass
4credit note PDFChromium9.3 s–Pass
5credit note emailChromium6.5 s–Pass
6credit note reduces balanceChromium3.2 s–Pass
7credit note in VAT reportChromium6.9 s–Pass
8credit note number seriesChromium3.6 s–Pass
9credit one lineWebKit7.9 s–Pass
10credit full invoiceWebKit4.6 s–Pass
11credit above total blockedWebKit8.3 s–Pass
12credit note PDFWebKit11.5 s–Pass
13credit note emailWebKit8.7 s–Pass
14credit note reduces balanceWebKit5.4 s–Pass
15credit note in VAT reportWebKit9.1 s–Pass
16credit note number seriesWebKit5.8 s–Pass

recurring.spec.ts

#TestProjectDurationRetriesResult
1schedules · weeklyChromium3.0 s–Pass
2schedules · monthlyChromium6.7 s–Pass
3schedules · quarterlyChromium3.4 s–Pass
4schedules · yearlyChromium13.6 s–Pass
5day 31 falls back to last dayChromium3.8 s–Pass
6end date stops scheduleChromium7.5 s–Pass
7pause and resumeChromium4.2 s–Pass
8creates next invoice at midnightChromium7.9 s1Flaky
9sends automatically when enabledChromium4.6 s–Pass
10preview of next 3 datesChromium8.3 s–Pass
11edit applies to future invoices onlyChromium5.0 s–Pass
12schedules · weeklyWebKit2.3 s–Pass
13schedules · monthlyWebKit6.0 s–Pass
14schedules · quarterlyWebKit2.7 s–Pass
15schedules · yearlyWebKit12.9 s–Pass
16day 31 falls back to last dayWebKit3.1 s–Pass
17end date stops scheduleWebKit6.8 s–Pass
18pause and resumeWebKit3.5 s–Pass
19creates next invoice at midnightWebKit7.2 s–Pass
20sends automatically when enabledWebKit3.9 s–Pass
21preview of next 3 datesWebKit7.6 s–Pass
22edit applies to future invoices onlyWebKit4.3 s–Pass

reminders.spec.ts

#TestProjectDurationRetriesResult
1sends reminder · 3 days before dueChromium8.5 s–Pass
2sends reminder · on due dateChromium5.2 s–Pass
3sends reminder · 7 days overdueChromium1.9 s–Pass
4sends reminder · 30 days overdueChromium5.6 s–Pass
5reminder uses trading nameChromium2.3 s–Pass
6stops after paymentChromium6.0 s–Pass
7customer opt-out respectedChromium2.7 s–Pass
8reminder template previewChromium6.4 s–Pass
9sends reminder · 3 days before dueWebKit3.7 s–Pass
10sends reminder · on due dateWebKit7.4 s–Pass
11sends reminder · 7 days overdueWebKit4.1 s–Pass
12sends reminder · 30 days overdueWebKit7.8 s–Pass
13reminder uses trading nameWebKit4.5 s–Pass
14stops after paymentWebKit8.2 s–Pass
15customer opt-out respectedWebKit4.9 s–Pass
16reminder template previewWebKit8.6 s–Pass

reports/month-end.spec.ts

#TestProjectDurationRetriesResult
1revenue report · monthChromium5.8 s–Pass
2revenue report · quarterChromium2.5 s–Pass
3revenue report · yearChromium12.7 s–Pass
4aged receivables bucketsChromium2.9 s–Pass
5VAT summary per rateChromium6.6 s–Pass
6export to CSVChromium9.8 s–Pass
7export to XLSXChromium7.0 s–Pass
8report totals equal invoice totalsChromium3.7 s–Pass
9report respects currency filterChromium7.4 s–Pass
10year view totalsChromium10.6 s–Pass
11revenue report · monthWebKit8.4 s–Pass
12revenue report · quarterWebKit5.1 s–Pass
13revenue report · yearWebKit15.3 s–Pass
14aged receivables bucketsWebKit5.5 s–Pass
15VAT summary per rateWebKit2.2 s–Pass
16export to CSVWebKit12.4 s–Pass
17export to XLSXWebKit2.6 s–Pass
18report totals equal invoice totalsWebKit6.3 s–Pass
19report respects currency filterWebKit3.0 s–Pass
20year view totalsWebKit13.2 s–Pass

portal/customer-portal.spec.ts

#TestProjectDurationRetriesResult
1customer opens invoice · desktopChromium3.9 s–Pass
2customer opens invoice · mobile SafariChromium7.6 s–Pass
3customer pays · cardChromium4.3 s–Pass
4customer pays · PayPalChromium8.0 s–Pass
5customer pays 3 invoices at onceChromium11.2 s–Pass
6customer downloads PDFChromium14.9 s–Pass
7customer sees payment historyChromium5.1 s–Pass
8portal link expires after 90 daysChromium1.8 s–Pass
9portal in GermanChromium5.5 s–Pass
10portal in FrenchChromium2.2 s–Pass
11portal notes rendered as textChromium5.9 s–Pass
12portal without login via magic linkChromium2.6 s–Pass
13customer opens invoice · desktopWebKit6.9 s–Pass
14customer opens invoice · mobile SafariWebKit3.6 s–Pass
15customer pays · cardWebKit7.3 s–Pass
16customer pays · PayPalWebKit4.0 s–Pass
17customer pays 3 invoices at onceWebKit14.2 s–Pass
18customer downloads PDFWebKit10.9 s–Pass
19customer sees payment historyWebKit8.1 s–Pass
20portal link expires after 90 daysWebKit4.8 s–Pass
21portal in GermanWebKit8.5 s–Pass
22portal in FrenchWebKit5.2 s–Pass
23portal notes rendered as textWebKit8.9 s–Pass
24portal without login via magic linkWebKit5.6 s–Pass

settings/company.spec.ts

#TestProjectDurationRetriesResult
1edit company detailsChromium2.8 s–Pass
2upload logoChromium6.5 s–Pass
3logo shown on PDFChromium9.7 s–Pass
4default payment termsChromium6.9 s–Pass
5default currencyChromium3.6 s–Pass
6invoice number formatChromium7.3 s–Pass
7bank account on PDFChromium10.5 s–Pass
8VAT number validationChromium7.7 s–Pass
9edit company detailsWebKit5.0 s–Pass
10upload logoWebKit8.7 s–Pass
11logo shown on PDFWebKit11.9 s–Pass
12default payment termsWebKit9.1 s–Pass
13default currencyWebKit5.8 s–Pass
14invoice number formatWebKit2.5 s–Pass
15bank account on PDFWebKit12.7 s–Pass
16VAT number validationWebKit2.9 s–Pass

settings/integrations.spec.ts

#TestProjectDurationRetriesResult
1connect accounting exportChromium7.1 s–Pass
2disconnect integrationChromium3.8 s–Pass
3API client createdChromium7.5 s–Pass
4API client secret shown onceChromium4.2 s–Pass
5connect accounting exportWebKit8.5 s–Pass
6disconnect integrationWebKit5.2 s–Pass
7API client createdWebKit8.9 s–Pass
8API client secret shown onceWebKit5.6 s–Pass

webhooks-ui.spec.ts

#TestProjectDurationRetriesResult
1create subscriptionChromium2.8 s–Pass
2send test eventChromium6.5 s–Pass
3delivery log visibleChromium3.2 s–Pass
4disable subscriptionChromium6.9 s–Pass
5rotate secretChromium3.6 s–Pass
6rejects http URLChromium7.3 s–Pass
7retry failed delivery manuallyChromium4.0 s–Pass
8create subscriptionWebKit8.3 s–Pass
9send test eventWebKit5.0 s–Pass
10delivery log visibleWebKit8.7 s–Pass
11disable subscriptionWebKit5.4 s–Pass
12rotate secretWebKit9.1 s–Pass
13rejects http URLWebKit5.8 s–Pass
14retry failed delivery manuallyWebKit2.5 s–Pass

users/invite.spec.ts

#TestProjectDurationRetriesResult
1invites a user as · AdminChromium6.7 s–Pass
2invites a user as · FinanceChromium3.4 s–Pass
3invites a user as · AccountantChromium7.1 s–Pass
4invites a user as · SalesChromium3.8 s–Pass
5invites a user as · ViewerChromium7.5 s–Pass
6invite email arrivesChromium4.2 s–Pass
7invite link expiresChromium7.9 s–Pass
8resend inviteChromium4.6 s–Pass
9deactivate userChromium8.3 s–Pass
10last admin cannot be removedChromium5.0 s–Pass
11invites a user as · AdminWebKit2.3 s–Pass
12invites a user as · FinanceWebKit6.0 s–Pass
13invites a user as · AccountantWebKit2.7 s–Pass
14invites a user as · SalesWebKit6.4 s–Pass
15invites a user as · ViewerWebKit3.1 s–Pass
16invite email arrivesWebKit6.8 s–Pass
17invite link expiresWebKit3.5 s–Pass
18resend inviteWebKit7.2 s–Pass
19deactivate userWebKit3.9 s–Pass
20last admin cannot be removedWebKit7.6 s–Pass

audit-log.spec.ts

#TestProjectDurationRetriesResult
1invoice edit loggedChromium4.8 s–Pass
2payment loggedChromium8.5 s–Pass
3user invite loggedChromium5.2 s–Pass
4filter by userChromium1.9 s–Pass
5export audit logChromium5.6 s–Pass
6invoice edit loggedWebKit2.9 s–Pass
7payment loggedWebKit6.6 s–Pass
8user invite loggedWebKit3.3 s–Pass
9filter by userWebKit7.0 s–Pass
10export audit logWebKit3.7 s–Pass

dashboard.spec.ts

#TestProjectDurationRetriesResult
1shows open balanceChromium7.9 s–Pass
2shows overdue countChromium4.6 s–Pass
3shows revenue chartChromium8.3 s–Pass
4chart matches reportChromium5.0 s–Pass
5quick actions workChromium1.7 s–Pass
6empty tenant onboardingChromium5.4 s–Pass
7shows open balanceWebKit2.7 s–Pass
8shows overdue countWebKit6.4 s–Pass
9shows revenue chartWebKit3.1 s–Pass
10chart matches reportWebKit6.8 s–Pass
11quick actions workWebKit3.5 s–Pass
12empty tenant onboardingWebKit7.2 s–Pass

search.spec.ts

#TestProjectDurationRetriesResult
1finds invoice by numberChromium4.4 s–Pass
2finds customer by nameChromium8.1 s–Pass
3finds by amountChromium4.8 s–Pass
4keyboard shortcut opens searchChromium8.5 s–Pass
5no results messageChromium5.2 s–Pass
6finds invoice by numberWebKit2.5 s–Pass
7finds customer by nameWebKit6.2 s–Pass
8finds by amountWebKit2.9 s–Pass
9keyboard shortcut opens searchWebKit6.6 s–Pass
10no results messageWebKit3.3 s–Pass

i18n.spec.ts

#TestProjectDurationRetriesResult
1UI language · EnglishChromium7.5 s–Pass
2UI language · GermanChromium4.2 s–Pass
3UI language · FrenchChromium7.9 s–Pass
4UI language · DutchChromium4.6 s–Pass
5UI language · PolishChromium8.3 s–Pass
6dates follow localeChromium5.0 s–Pass
7numbers follow localeChromium1.7 s–Pass
8currency symbol positionChromium5.4 s–Pass
9UI language · EnglishWebKit2.7 s–Pass
10UI language · GermanWebKit6.4 s–Pass
11UI language · FrenchWebKit3.1 s–Pass
12UI language · DutchWebKit6.8 s–Pass
13UI language · PolishWebKit3.5 s–Pass
14dates follow localeWebKit7.2 s–Pass
15numbers follow localeWebKit3.9 s–Pass
16currency symbol positionWebKit7.6 s–Pass

accessibility.spec.ts

#TestProjectDurationRetriesResult
1no new axe violations vs baseline · loginChromium4.8 s–Pass
2no new axe violations vs baseline · dashboardChromium8.5 s–Pass
3no new axe violations vs baseline · invoice listChromium5.2 s–Pass
4no new axe violations vs baseline · invoice editorChromium1.9 s–Pass
5no new axe violations vs baseline · customer pageChromium5.6 s–Pass
6no new axe violations vs baseline · reportsChromium2.3 s–Pass
7no new axe violations vs baseline · portal invoiceChromium6.0 s–Pass
8no new axe violations vs baseline · portal paymentChromium2.7 s–Pass

visual.spec.ts

#TestProjectDurationRetriesResult
1screenshot matches · dashboardChromium7.5 s–Pass
2screenshot matches · invoice editorChromium4.2 s–Pass
3screenshot matches · invoice PDFChromium14.4 s–Pass
4screenshot matches · portal invoiceChromium4.6 s–Pass
5screenshot matches · settingsChromium8.3 s–Pass
6screenshot matches · loginChromium5.0 s–Pass

Sample report. Acme Ledger, its data, people and defects are fictional. Your report shows your product, your tickets and your tools.
More sample reports · Book a 15-minute call