/** * auth recipe — login / logout / protected-route patterns. * * Lifted from the PROVEN NQ-2 Playwright specs and CaseLoom Cypress specs. * These are REAL selector patterns and assertion patterns used in those test * suites, re-derived from first principles (not copy-pasted). * * NQ-2 Playwright reference patterns: * - page.goto('/login') * - page.locator('[data-testid=login-email]').fill(email) * - page.locator('[data-testid=login-password]').fill(password) * - page.locator('[data-testid=login-submit]').click() * - expect(page.locator('[data-testid=dashboard-root]')).toBeVisible() * - expect(page.locator('[data-testid=login-error]')).toContainText('Invalid') * * CaseLoom Cypress reference patterns: * - cy.visit('/login') * - cy.get('[data-testid=login-email]').type(email) * - cy.get('[data-testid=login-password]').type(password) * - cy.get('[data-testid=login-submit]').click() * - cy.get('[data-testid=dashboard-root]').should('be.visible') * - cy.get('[data-testid=login-error]').should('contain.text', 'Invalid') */ import type { NeutralScenario } from '../schemas/gap-analysis.schema.js'; import type { RecipeConfig } from '../schemas/recipe.schema.js'; /** * Generate NeutralScenarios for the auth recipe. * * Returns 3 scenarios: * 1. Happy-path login → lands on dashboard (smoke gate) * 2. Invalid-credentials → inline error message shown (negative gate) * 3. Protected route redirects unauthenticated users to login (security gate) * * All selectors come from the proven NQ-2/CaseLoom patterns and are overridable * via RecipeConfig, so the recipe works for any form-login app. */ export declare function buildAuthScenarios(config?: RecipeConfig): NeutralScenario[]; //# sourceMappingURL=auth.d.ts.map