@sudobility/testomniac_types
v0.0.85
Published
Shared TypeScript types for the Testomniac ecosystem
Readme
@sudobility/testomniac_types
Shared TypeScript type definitions for the Testomniac testing platform ecosystem.
Foundation layer -- all other Testomniac projects depend on this package.
Installation
bun add @sudobility/testomniac_typesPeer dependency:
bun add @sudobility/typesUsage
import {
TestInteraction,
TestRun,
TestRunFinding,
TestRunStatus,
PlaywrightAction,
successResponse,
errorResponse,
isSuccessResponse,
isErrorResponse,
resolvePlaywrightRole,
} from '@sudobility/testomniac_types';
// Wrap API responses
const ok = successResponse({ items: [] }); // { success: true, data: { items: [] } }
const err = errorResponse('Not found'); // { success: false, error: "Not found" }
// Type-check responses
if (isSuccessResponse(response)) {
console.log(response.data);
}
// Map HTML tags to ARIA roles
const role = resolvePlaywrightRole('button'); // "button"Key Type Categories
Enums & Constants
PlaywrightAction-- click, fill, check, select, hover, press, navigate, etc.LocatorStrategy-- role, text, label, placeholder, testId, css, xpathExpectationType-- 60+ assertion types (page_loaded, no_console_errors, form_submitted_successfully, etc.)TestRunStatus-- pending, running, completed, failed, etc.TestType-- render, interaction, navigation, form, e2e, etc.PatternType-- Card, Modal, Accordion, Carousel, Tab, etc.ScaffoldType-- header, footer, sidebar, navigation, main-contentScreen-- predefined desktop and mobile screen definitions
Domain Entities
TestAction,TestStep,TestInteraction,TestSurface,TestSurfaceBundleTestRun,TestSurfaceRun,TestElementRun,TestRunFindingElementIdentity,ElementLocator-- persistent element identificationPage,PageState,PageVisit,Scaffold,UiPatternPersona,UseCase,InputValueTestScenario,TestEnvironment,Product,Runner
API Contracts
100+ request/response types following a consistent pattern:
<Entity>Response-- API response envelope for an entity<Entity>CreateRequest-- payload for creating an entity<Entity>UpdateRequest-- payload for updating an entity
Response Helpers
successResponse<T>(data)-- wraps data inBaseResponse<T>withsuccess: trueerrorResponse(error)-- wraps error string inBaseResponse<never>withsuccess: falseisSuccessResponse(response)-- type guard for success responsesisErrorResponse(response)-- type guard for error responses
Utility Functions
resolvePlaywrightRole(tagName)-- maps HTML tags to ARIA roles
Re-exports from @sudobility/types
ApiResponse, BaseResponse, NetworkClient, Optional, entity types, and enums.
Development
bun run build # Build ESM output (tsc → dist/)
bun run dev # Watch mode
bun test # Run Vitest tests (100+ test cases)
bun run typecheck # TypeScript check
bun run lint # Run ESLint
bun run verify # All checks + build (use before commit)Architecture
@sudobility/testomniac_types (this package)
^
testomniac_api -- Backend API server
testomniac_client -- API client SDK with TanStack Query hooks
testomniac_lib -- Business logic library
testomniac_app -- React web application
testomniac_app_rn -- React Native mobile app
testomniac_runner_service -- Shared execution library
testomniac_runner -- Server-side polling worker
testomniac_extension -- Chrome extensionRelated Packages
- testomniac_api -- Backend API server (Hono + PostgreSQL); imports types for request/response validation
- testomniac_client -- API client SDK with TanStack Query hooks; imports types for API contracts
- testomniac_lib -- Business logic library; imports types transitively via testomniac_client
- testomniac_app -- Web application (React + Vite); imports types transitively
- testomniac_app_rn -- React Native mobile app; imports types transitively
- testomniac_runner_service -- Shared execution library; imports types for domain models
- testomniac_runner -- Server-side polling worker; imports types via runner_service
- testomniac_extension -- Chrome extension; imports types via runner_service
License
BUSL-1.1
