| FAILED |
currency-consistency.spec.ts |
currency symbol propagates across invoices and payments screens |
5.4 s |
3 |
setOrgCurrency: 500 {"message":"Failed query: select \"id\", \"name\", \"contact_email\", \"contact_phone\", \"address\", \"city\", \"state\", \"zip_code\", \"logo_url\", \"owner_id\", \"is_active\", \"subscription_statu [2mexpect([22m[31mreceived[39m[2m).[22mtoBe[2m([22m |
| FAILED |
dashboard-stats.spec.ts |
dashboard reflects properties / tenants / collection / tickets |
5.7 s |
3 |
createProperty failed: 500 {"message":"Error checking subscription status"} [2mexpect([22m[31mreceived[39m[2m).[22mtoBe[2m([22m[32mexpected[39m[2m) // Object.is equality[22m Expected: [32mtrue[39m Received: [31mfalse[39m |
| FAILED |
invoice-generate-manual.spec.ts |
owner generates a manual invoice for a tenant |
5.7 s |
3 |
createProperty failed: 500 {"message":"Error checking subscription status"} [2mexpect([22m[31mreceived[39m[2m).[22mtoBe[2m([22m[32mexpected[39m[2m) // Object.is equality[22m Expected: [32mtrue[39m Received: [31mfalse[39m |
| FAILED |
invoice-pdf-attachment.spec.ts |
sending an invoice enqueues an outbound notification |
5.4 s |
3 |
createProperty failed: 500 {"message":"Error checking subscription status"} [2mexpect([22m[31mreceived[39m[2m).[22mtoBe[2m([22m[32mexpected[39m[2m) // Object.is equality[22m Expected: [32mtrue[39m Received: [31mfalse[39m |
| FAILED |
invoice-pdf-currency.spec.ts |
invoice detail and PDF use the org currency symbol |
5.5 s |
3 |
setOrgCurrency: 500 {"message":"Failed query: select \"id\", \"name\", \"contact_email\", \"contact_phone\", \"address\", \"city\", \"state\", \"zip_code\", \"logo_url\", \"owner_id\", \"is_active\", \"subscription_statu [2mexpect([22m[31mreceived[39m[2m).[22mtoBe[2m([22m |
| FAILED |
invoice-pdf-generation.spec.ts |
owner downloads an invoice PDF |
5.5 s |
3 |
createProperty failed: 500 {"message":"Error checking subscription status"} [2mexpect([22m[31mreceived[39m[2m).[22mtoBe[2m([22m[32mexpected[39m[2m) // Object.is equality[22m Expected: [32mtrue[39m Received: [31mfalse[39m |
| FAILED |
invoice-pdf-multipage.spec.ts |
invoice PDF renders with many line items |
5.5 s |
3 |
createProperty failed: 500 {"message":"Error checking subscription status"} [2mexpect([22m[31mreceived[39m[2m).[22mtoBe[2m([22m[32mexpected[39m[2m) // Object.is equality[22m Expected: [32mtrue[39m Received: [31mfalse[39m |
| FAILED |
lease-doc-upload.spec.ts |
owner uploads a lease document and it appears for the tenant |
5.5 s |
3 |
createProperty failed: 500 {"message":"Error checking subscription status"} [2mexpect([22m[31mreceived[39m[2m).[22mtoBe[2m([22m[32mexpected[39m[2m) // Object.is equality[22m Expected: [32mtrue[39m Received: [31mfalse[39m |
| FAILED |
listing-photos.spec.ts |
owner uploads photos to a listing and they appear via the API |
5.8 s |
3 |
createListing failed: 500 {"message":"Failed query: insert into \"property_listings\" (\"id\", \"title\", \"description\", \"property_id\", \"property_unit_id\", \"user_id\", \"company_id\", \"address\", \"city\", \"state\", \ [2mexpect([22m[31mreceived[39m[2m).[22mtoBe[2m |
| FAILED |
maintenance-staff-lifecycle.spec.ts |
owner moves a maintenance ticket through its lifecycle |
5.5 s |
3 |
createProperty failed: 500 {"message":"Error checking subscription status"} [2mexpect([22m[31mreceived[39m[2m).[22mtoBe[2m([22m[32mexpected[39m[2m) // Object.is equality[22m Expected: [32mtrue[39m Received: [31mfalse[39m |
| FAILED |
maintenance-tenant-creates.spec.ts |
maintenance ticket can be created and appears in the list |
5.5 s |
3 |
createProperty failed: 500 {"message":"Error checking subscription status"} [2mexpect([22m[31mreceived[39m[2m).[22mtoBe[2m([22m[32mexpected[39m[2m) // Object.is equality[22m Expected: [32mtrue[39m Received: [31mfalse[39m |
| FAILED |
messaging-owner-to-tenant.spec.ts |
owner sends a tenant notification and it lands in the queue |
5.6 s |
3 |
createProperty failed: 500 {"message":"Error checking subscription status"} [2mexpect([22m[31mreceived[39m[2m).[22mtoBe[2m([22m[32mexpected[39m[2m) // Object.is equality[22m Expected: [32mtrue[39m Received: [31mfalse[39m |
| FAILED |
monthly-rent-generation.spec.ts |
monthly rent generation creates invoices for occupied units |
5.5 s |
3 |
createProperty failed: 500 {"message":"Error checking subscription status"} [2mexpect([22m[31mreceived[39m[2m).[22mtoBe[2m([22m[32mexpected[39m[2m) // Object.is equality[22m Expected: [32mtrue[39m Received: [31mfalse[39m |
| FAILED |
payment-fifo-multi-invoice.spec.ts |
partial payment allocates FIFO across multiple unpaid invoices |
5.5 s |
3 |
createProperty failed: 500 {"message":"Error checking subscription status"} [2mexpect([22m[31mreceived[39m[2m).[22mtoBe[2m([22m[32mexpected[39m[2m) // Object.is equality[22m Expected: [32mtrue[39m Received: [31mfalse[39m |
| FAILED |
payment-record-full.spec.ts |
owner records a full payment and the invoice is marked paid |
5.5 s |
3 |
createProperty failed: 500 {"message":"Error checking subscription status"} [2mexpect([22m[31mreceived[39m[2m).[22mtoBe[2m([22m[32mexpected[39m[2m) // Object.is equality[22m Expected: [32mtrue[39m Received: [31mfalse[39m |
| FAILED |
property-create.spec.ts |
owner creates a property via the UI |
38.8 s |
3 |
[2mexpect([22m[31mlocator[39m[2m).[22mtoBeVisible[2m([22m[2m)[22m failed Locator: getByText('Sunset Apartments_mqr9dp9rpz').first() Expected: visible Timeout: 10000ms Error: element(s) not found Call log: [2m - Expect "toBeVisible" with timeout 10000ms[22m [2m - wait |
| FAILED |
property-edit-delete.spec.ts |
owner edits then deletes a property |
5.5 s |
3 |
createProperty failed: 500 {"message":"Error checking subscription status"} [2mexpect([22m[31mreceived[39m[2m).[22mtoBe[2m([22m[32mexpected[39m[2m) // Object.is equality[22m Expected: [32mtrue[39m Received: [31mfalse[39m |
| FAILED |
recurring-bill-runs.spec.ts |
owner creates a recurring bill and it surfaces for the tenant |
5.5 s |
3 |
createProperty failed: 500 {"message":"Error checking subscription status"} [2mexpect([22m[31mreceived[39m[2m).[22mtoBe[2m([22m[32mexpected[39m[2m) // Object.is equality[22m Expected: [32mtrue[39m Received: [31mfalse[39m |
| FAILED |
reports-generation.spec.ts |
GET /api/reports/financial returns 200 + JSON body |
5.4 s |
3 |
/api/reports/financial: 500 {"message":"Failed query: select \"id\", \"name\", \"contact_email\", \"contact_phone\", \"address\", \"city\", \"state\", \"zip_code\", \"logo_url\", \"owner_id\", \"is_active\", \"subscription_statu [2mexpect([22m[31mreceived[39m[2m).[22mtoBe[ |
| FAILED |
reports-generation.spec.ts |
GET /api/reports/occupancy returns 200 + JSON body |
5.5 s |
3 |
/api/reports/occupancy: 500 {"message":"Failed query: select \"id\", \"name\", \"contact_email\", \"contact_phone\", \"address\", \"city\", \"state\", \"zip_code\", \"logo_url\", \"owner_id\", \"is_active\", \"subscription_statu [2mexpect([22m[31mreceived[39m[2m).[22mtoBe[ |
| FAILED |
reports-generation.spec.ts |
GET /api/reports/maintenance returns 200 + JSON body |
5.5 s |
3 |
/api/reports/maintenance: 500 {"message":"Failed query: select \"id\", \"name\", \"contact_email\", \"contact_phone\", \"address\", \"city\", \"state\", \"zip_code\", \"logo_url\", \"owner_id\", \"is_active\", \"subscription_statu [2mexpect([22m[31mreceived[39m[2m).[22mtoBe |
| FAILED |
statement-download.spec.ts |
owner downloads a tenant statement PDF |
5.1 s |
3 |
createProperty failed: 500 {"message":"Error checking subscription status"} [2mexpect([22m[31mreceived[39m[2m).[22mtoBe[2m([22m[32mexpected[39m[2m) // Object.is equality[22m Expected: [32mtrue[39m Received: [31mfalse[39m |
| FAILED |
tenant-create-and-assign.spec.ts |
owner creates a tenant and assigns to a unit |
5.6 s |
3 |
createProperty failed: 500 {"message":"Error checking subscription status"} [2mexpect([22m[31mreceived[39m[2m).[22mtoBe[2m([22m[32mexpected[39m[2m) // Object.is equality[22m Expected: [32mtrue[39m Received: [31mfalse[39m |
| FAILED |
tenant-payment-ledger.spec.ts |
tenant payment is reflected in the ledger and balance |
5.5 s |
3 |
createProperty failed: 500 {"message":"Error checking subscription status"} [2mexpect([22m[31mreceived[39m[2m).[22mtoBe[2m([22m[32mexpected[39m[2m) // Object.is equality[22m Expected: [32mtrue[39m Received: [31mfalse[39m |
| FAILED |
tenant-vacate-and-reassign.spec.ts |
owner vacates and reassigns a tenant to a different unit |
5.6 s |
3 |
createProperty failed: 500 {"message":"Error checking subscription status"} [2mexpect([22m[31mreceived[39m[2m).[22mtoBe[2m([22m[32mexpected[39m[2m) // Object.is equality[22m Expected: [32mtrue[39m Received: [31mfalse[39m |
| FAILED |
tenants-list-page.spec.ts |
new tenant shows in /tenants list |
5.5 s |
3 |
SkipSignal: createTenant: subscription gate (500): {"message":"Error checking subscription status"} |
| FAILED |
unit-create.spec.ts |
owner creates a unit under a property |
5.6 s |
3 |
createProperty failed: 500 {"message":"Error checking subscription status"} [2mexpect([22m[31mreceived[39m[2m).[22mtoBe[2m([22m[32mexpected[39m[2m) // Object.is equality[22m Expected: [32mtrue[39m Received: [31mfalse[39m |
| FAILED |
units-list-page.spec.ts |
new unit shows in /units list |
5.4 s |
3 |
createProperty failed: 500 {"message":"Error checking subscription status"} [2mexpect([22m[31mreceived[39m[2m).[22mtoBe[2m([22m[32mexpected[39m[2m) // Object.is equality[22m Expected: [32mtrue[39m Received: [31mfalse[39m |
| SKIPPED |
recurring-bill-create.spec.ts |
owner creates a recurring bill |
217 ms |
1 |
skipped |
| PASSED |
auth-login.spec.ts |
logs in, lands authenticated, then logs out |
2.1 s |
1 |
|
| PASSED |
auth-login.spec.ts |
rejects bad credentials |
2.4 s |
1 |
|
| PASSED |
auth-tenant-login.spec.ts |
tenant logs in and reaches the tenant portal |
1.2 s |
1 |
|
| PASSED |
auth.setup.ts |
authenticate as owner |
2.8 s |
1 |
|
| PASSED |
auth.setup.ts |
authenticate as tenant |
1.7 s |
1 |
|
| PASSED |
reports-generation.spec.ts |
reports page loads in the UI |
2.1 s |
1 |
|