- Install Jest for unit testing with React Testing Library - Install Playwright for end-to-end testing - Configure Jest with proper TypeScript support and module mapping - Create test setup files and utilities for both unit and e2e tests Components: * Jest configuration with coverage thresholds * Playwright configuration with browser automation * Unit tests for LoginForm, AuthContext, and useSocketIO hook * E2E tests for authentication, dashboard, and agents workflows * GitHub Actions workflow for automated testing * Mock data and API utilities for consistent testing * Test documentation with best practices Testing features: - Unit tests with 70% coverage threshold - E2E tests with API mocking and user journey testing - CI/CD integration for automated test runs - Cross-browser testing support with Playwright - Authentication system testing end-to-end 🚀 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
77 lines
2.7 KiB
JavaScript
77 lines
2.7 KiB
JavaScript
"use strict";
|
|
// disabling this lint on this whole file because Store should be abstract
|
|
// but we have implementations in the wild that may not implement all features
|
|
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.Store = void 0;
|
|
/**
|
|
* Base class for {@link CookieJar} stores.
|
|
*
|
|
* The storage model for each {@link CookieJar} instance can be replaced with a custom implementation. The default is
|
|
* {@link MemoryCookieStore}.
|
|
*
|
|
* @remarks
|
|
* - Stores should inherit from the base Store class, which is available as a top-level export.
|
|
*
|
|
* - Stores are asynchronous by default, but if {@link Store.synchronous} is set to true, then the `*Sync` methods
|
|
* of the containing {@link CookieJar} can be used.
|
|
*
|
|
* @public
|
|
*/
|
|
class Store {
|
|
constructor() {
|
|
this.synchronous = false;
|
|
}
|
|
/**
|
|
* @internal No doc because this is an overload that supports the implementation
|
|
*/
|
|
findCookie(_domain, _path, _key, _callback) {
|
|
throw new Error('findCookie is not implemented');
|
|
}
|
|
/**
|
|
* @internal No doc because this is an overload that supports the implementation
|
|
*/
|
|
findCookies(_domain, _path, _allowSpecialUseDomain = false, _callback) {
|
|
throw new Error('findCookies is not implemented');
|
|
}
|
|
/**
|
|
* @internal No doc because this is an overload that supports the implementation
|
|
*/
|
|
putCookie(_cookie, _callback) {
|
|
throw new Error('putCookie is not implemented');
|
|
}
|
|
/**
|
|
* @internal No doc because this is an overload that supports the implementation
|
|
*/
|
|
updateCookie(_oldCookie, _newCookie, _callback) {
|
|
// recommended default implementation:
|
|
// return this.putCookie(newCookie, cb);
|
|
throw new Error('updateCookie is not implemented');
|
|
}
|
|
/**
|
|
* @internal No doc because this is an overload that supports the implementation
|
|
*/
|
|
removeCookie(_domain, _path, _key, _callback) {
|
|
throw new Error('removeCookie is not implemented');
|
|
}
|
|
/**
|
|
* @internal No doc because this is an overload that supports the implementation
|
|
*/
|
|
removeCookies(_domain, _path, _callback) {
|
|
throw new Error('removeCookies is not implemented');
|
|
}
|
|
/**
|
|
* @internal No doc because this is an overload that supports the implementation
|
|
*/
|
|
removeAllCookies(_callback) {
|
|
throw new Error('removeAllCookies is not implemented');
|
|
}
|
|
/**
|
|
* @internal No doc because this is an overload that supports the implementation
|
|
*/
|
|
getAllCookies(_callback) {
|
|
throw new Error('getAllCookies is not implemented (therefore jar cannot be serialized)');
|
|
}
|
|
}
|
|
exports.Store = Store;
|