# Instructions

- Following Playwright test failed.
- Explain why, be concise, respect Playwright best practices.
- Provide a snippet of code with the fix, if possible.

# Test info

- Name: smoke.spec.js >> installation PWA loads
- Location: tests/smoke.spec.js:70:1

# Error details

```
Error: expect(received).toContain(expected) // indexOf

Expected value: 404
Received array: [200, 302]
```

# Page snapshot

```yaml
- generic [ref=e2]: 404 page not found
```

# Test source

```ts
  1   | // smoke.spec.js
  2   | // Purpose: Verify Playwright is working and VPS is serving pages
  3   | // Run: npx playwright test tests/smoke.spec.js
  4   | 
  5   | const { test, expect } = require('@playwright/test');
  6   | 
  7   | const BASE = 'https://srv1111289.hstgr.cloud';
  8   | 
  9   | test('hub PWA loads and shows login', async ({ page }) => {
  10  |   await page.goto(`${BASE}/hub/`);
  11  |   await expect(page).toHaveTitle(/Hub|360/i);
  12  |   // PIN pad or login screen must be present
  13  |   await expect(page.locator('body')).not.toBeEmpty();
  14  | });
  15  | 
  16  | test('mobile viewport renders hub correctly', async ({ page }) => {
  17  |   await page.setViewportSize({ width: 390, height: 844 });
  18  |   await page.goto(`${BASE}/hub/`);
  19  |   const title = await page.title();
  20  |   expect(title).toBeTruthy();
  21  | });
  22  | 
  23  | test('admin PWA loads', async ({ page }) => {
  24  |   await page.goto(`${BASE}/admin/`);
  25  |   await expect(page.locator('body')).not.toBeEmpty();
  26  | });
  27  | 
  28  | test('expense PWA loads', async ({ page }) => {
  29  |   await page.goto(`${BASE}/expense/`);
  30  |   await expect(page.locator('body')).not.toBeEmpty();
  31  | });
  32  | 
  33  | test('sales PWA loads', async ({ page }) => {
  34  |   await page.goto(`${BASE}/sales/`);
  35  |   await expect(page.locator('body')).not.toBeEmpty();
  36  | });
  37  | 
  38  | test('hr PWA loads', async ({ page }) => {
  39  |   await page.goto(`${BASE}/hr/`);
  40  |   await expect(page.locator('body')).not.toBeEmpty();
  41  | });
  42  | 
  43  | test('counters PWA loads', async ({ page }) => {
  44  |   const resp = await page.goto(`${BASE}/counters/`);
  45  |   expect([200, 302]).toContain(resp?.status());
  46  |   await expect(page.locator('body')).not.toBeEmpty();
  47  | });
  48  | 
  49  | test('recce PWA loads', async ({ page }) => {
  50  |   await page.goto(`${BASE}/recce/`);
  51  |   await expect(page.locator('body')).not.toBeEmpty();
  52  | });
  53  | 
  54  | test('vehicle PWA loads', async ({ page }) => {
  55  |   await page.goto(`${BASE}/vehicle/`);
  56  |   await expect(page.locator('body')).not.toBeEmpty();
  57  | });
  58  | 
  59  | test('finance custodian PWA loads', async ({ page }) => {
  60  |   await page.goto(`${BASE}/finance/custodian/`);
  61  |   await expect(page.locator('body')).not.toBeEmpty();
  62  | });
  63  | 
  64  | test('printing PWA loads', async ({ page }) => {
  65  |   const resp = await page.goto(`${BASE}/printing/`);
  66  |   expect([200, 302]).toContain(resp?.status());
  67  |   await expect(page.locator('body')).not.toBeEmpty();
  68  | });
  69  | 
  70  | test('installation PWA loads', async ({ page }) => {
  71  |   const resp = await page.goto(`${BASE}/installation/current/`);
> 72  |   expect([200, 302]).toContain(resp?.status());
      |                      ^ Error: expect(received).toContain(expected) // indexOf
  73  |   await expect(page.locator('body')).not.toBeEmpty();
  74  | });
  75  | 
  76  | test('vrs PWA loads', async ({ page }) => {
  77  |   await page.goto(`${BASE}/vrs/`);
  78  |   await expect(page.locator('body')).not.toBeEmpty();
  79  | });
  80  | 
  81  | test('production PWA loads', async ({ page }) => {
  82  |   await page.goto(`${BASE}/production/`);
  83  |   await expect(page.locator('body')).not.toBeEmpty();
  84  | });
  85  | 
  86  | test('learn PWA loads', async ({ page }) => {
  87  |   await page.goto(`${BASE}/learn/`);
  88  |   await expect(page.locator('body')).not.toBeEmpty();
  89  | });
  90  | 
  91  | test('contacts PWA loads', async ({ page }) => {
  92  |   await page.goto(`${BASE}/contacts/`);
  93  |   await expect(page.locator('body')).not.toBeEmpty();
  94  | });
  95  | 
  96  | test('dispatch PWA loads', async ({ page }) => {
  97  |   const resp = await page.goto(`${BASE}/dispatch/`);
  98  |   expect([200, 302]).toContain(resp?.status());
  99  |   await expect(page.locator('body')).not.toBeEmpty();
  100 | });
  101 | 
```