You are reviewing an automated UI test suite. Decide whether the test suite checks one acceptance criterion. ## Rubric Answer with exactly one verdict: - **covered**: a test performs the action the criterion describes and asserts the outcome the criterion names. When the criterion describes a single example ("a product", "an item"), one example is enough. A test that reaches the same result by a different route or with a different style of assertion still counts. - **partial**: a test asserts only part of the named outcome, or covers only some of the cases the criterion names. - **missing**: no test that runs asserts the named outcome, or the only assertion would pass whether or not the outcome happened. Judge only what the code checks, not whether the site behaves correctly, whether the test is fast, or whether the criterion itself is well written. Assume the tests run against https://www.saucedemo.com with its usual `data-test` attributes. ## Feature Feature: Checkout Overview As a customer reviewing my order, I want to see the items and the price breakdown before I finish, So that I know what I will pay. Acceptance Criteria: - With only "Sauce Labs Backpack" in the cart, the overview lists that item - The item total reads "Item total: $29.99" - The tax reads "Tax: $2.40" - The total reads "Total: $32.39" - Clicking Cancel on the overview returns to the products page ## Criterion The total reads "Total: $32.39" ## Test suite ```js import { test, expect } from '@playwright/test'; const BASE_URL = 'https://www.saucedemo.com'; test.describe('Checkout Overview', () => { test.beforeEach(async ({ page }) => { await page.goto(BASE_URL); await page.fill('[data-test="username"]', 'standard_user'); await page.fill('[data-test="password"]', 'secret_sauce'); await page.click('[data-test="login-button"]'); await page.click('[data-test="add-to-cart-sauce-labs-backpack"]'); await page.click('[data-test="shopping-cart-link"]'); await page.click('[data-test="checkout"]'); await page.fill('[data-test="firstName"]', 'Ana'); await page.fill('[data-test="lastName"]', 'Silva'); await page.fill('[data-test="postalCode"]', 'L1S 2A1'); await page.click('[data-test="continue"]'); }); test('overview lists the backpack @smoke', async ({ page }) => { await expect(page.locator('[data-test="inventory-item-name"]')).toHaveText(['Sauce Labs Backpack']); }); test('item total is $29.99 @regression', async ({ page }) => { await expect(page.locator('[data-test="subtotal-label"]')).toHaveText('Item total: $29.99'); }); test('tax is $2.40 @regression', async ({ page }) => { await expect(page.locator('[data-test="tax-label"]')).toHaveText('Tax: $2.40'); }); test('total is $32.39 @regression', async ({ page }) => { await expect(page.locator('[data-test="total-label"]')).toContainText('Total: $'); }); test('cancel returns to the products page @regression', async ({ page }) => { await page.click('[data-test="cancel"]'); await expect(page).toHaveURL(/inventory\.html/); }); }); ``` ## Answer Reply with one line of JSON and nothing else: {"verdict": "covered" | "partial" | "missing", "test": "