generated from nhcarrigan/template
feat: scaffolding
This commit is contained in:
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"name": "@library/frontend-e2e",
|
||||
"version": "0.0.1"
|
||||
}
|
||||
@@ -1,11 +1,19 @@
|
||||
import { getGreeting } from '../support/app.po';
|
||||
/**
|
||||
* @copyright 2026 NHCarrigan
|
||||
* @copyright 2026 NHCarrigan
|
||||
* @license Naomi's Public License
|
||||
*/
|
||||
|
||||
describe('frontend-e2e', () => {
|
||||
beforeEach(() => cy.visit('/'));
|
||||
import { getGreeting } from "../support/app.po";
|
||||
|
||||
it('should display welcome message', () => {
|
||||
describe("frontend-e2e", () => {
|
||||
beforeEach(() => {
|
||||
cy.visit("/");
|
||||
});
|
||||
|
||||
it("should display welcome message", () => {
|
||||
// Custom command example, see `../support/commands.ts` file
|
||||
cy.login('my-email@something.com', 'myPassword');
|
||||
cy.login("my-email@something.com", "myPassword");
|
||||
|
||||
// Function helper example, see `../support/app.po.ts` file
|
||||
getGreeting().contains(/Welcome/);
|
||||
|
||||
@@ -1 +1,7 @@
|
||||
export const getGreeting = () => cy.get('h1');
|
||||
/**
|
||||
* @copyright 2026 NHCarrigan
|
||||
* @copyright 2026 NHCarrigan
|
||||
* @license Naomi's Public License
|
||||
*/
|
||||
|
||||
export const getGreeting = (): Cypress.Chainable => cy.get("h1");
|
||||
@@ -1,35 +1,40 @@
|
||||
/**
|
||||
* @copyright 2026 NHCarrigan
|
||||
* @copyright 2026 NHCarrigan
|
||||
* @license Naomi's Public License
|
||||
*/
|
||||
|
||||
/// <reference types="cypress" />
|
||||
|
||||
// ***********************************************
|
||||
// This example commands.ts shows you how to
|
||||
// create various custom commands and overwrite
|
||||
// existing commands.
|
||||
//
|
||||
// For more comprehensive examples of custom
|
||||
// commands please read more here:
|
||||
// https://on.cypress.io/custom-commands
|
||||
// ***********************************************
|
||||
/**
|
||||
* This example commands.ts shows you how to
|
||||
* create various custom commands and overwrite
|
||||
* existing commands.
|
||||
*
|
||||
* For more comprehensive examples of custom
|
||||
* commands please read more here:
|
||||
* https://on.cypress.io/custom-commands
|
||||
*/
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/no-namespace
|
||||
// eslint-disable-next-line @typescript-eslint/no-namespace -- Required for Cypress type extensions
|
||||
declare namespace Cypress {
|
||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars -- Subject is required for type definition
|
||||
interface Chainable<Subject> {
|
||||
login(email: string, password: string): void;
|
||||
login: (email: string, password: string) => void;
|
||||
}
|
||||
}
|
||||
|
||||
// -- This is a parent command --
|
||||
Cypress.Commands.add('login', (email, password) => {
|
||||
console.log('Custom command example: Login', email, password);
|
||||
Cypress.Commands.add("login", (email, password) => {
|
||||
// eslint-disable-next-line no-console -- Example command for demonstration
|
||||
console.log("Custom command example: Login", email, password);
|
||||
});
|
||||
//
|
||||
|
||||
// -- This is a child command --
|
||||
// Cypress.Commands.add("drag", { prevSubject: 'element'}, (subject, options) => { ... })
|
||||
//
|
||||
//
|
||||
|
||||
// -- This is a dual command --
|
||||
// Cypress.Commands.add("dismiss", { prevSubject: 'optional'}, (subject, options) => { ... })
|
||||
//
|
||||
//
|
||||
|
||||
// -- This will overwrite an existing command --
|
||||
// Cypress.Commands.overwrite("visit", (originalFn, url, options) => { ... })
|
||||
@@ -1,17 +1,24 @@
|
||||
// ***********************************************************
|
||||
// This example support/e2e.ts is processed and
|
||||
// loaded automatically before your test files.
|
||||
//
|
||||
// This is a great place to put global configuration and
|
||||
// behavior that modifies Cypress.
|
||||
//
|
||||
// You can change the location of this file or turn off
|
||||
// automatically serving support files with the
|
||||
// 'supportFile' configuration option.
|
||||
//
|
||||
// You can read more here:
|
||||
// https://on.cypress.io/configuration
|
||||
// ***********************************************************
|
||||
/**
|
||||
* @copyright 2026 NHCarrigan
|
||||
* @license Naomi's Public License
|
||||
* @author Naomi Carrigan
|
||||
*/
|
||||
|
||||
/**
|
||||
* This example support/e2e.ts is processed and
|
||||
* loaded automatically before your test files.
|
||||
*
|
||||
* This is a great place to put global configuration and
|
||||
* behavior that modifies Cypress.
|
||||
*
|
||||
* You can change the location of this file or turn off
|
||||
* automatically serving support files with the
|
||||
* 'supportFile' configuration option.
|
||||
*
|
||||
* You can read more here:
|
||||
* https://on.cypress.io/configuration
|
||||
*/
|
||||
|
||||
// Import commands.ts using ES2015 syntax:
|
||||
import './commands';
|
||||
// eslint-disable-next-line import/no-unassigned-import -- Side effects import for Cypress commands
|
||||
import "./commands.ts";
|
||||
|
||||
@@ -1,8 +1,21 @@
|
||||
import nhcarrigan from '@nhcarrigan/eslint-config';
|
||||
import { fileURLToPath } from 'url';
|
||||
import { dirname } from 'path';
|
||||
|
||||
const __dirname = dirname(fileURLToPath(import.meta.url));
|
||||
|
||||
export default [
|
||||
...nhcarrigan,
|
||||
{
|
||||
ignores: ['**/dist', '**/out-tsc', 'node_modules'],
|
||||
},
|
||||
{
|
||||
files: ['**/*.ts'],
|
||||
languageOptions: {
|
||||
parserOptions: {
|
||||
project: './tsconfig.lib.json',
|
||||
tsconfigRootDir: __dirname,
|
||||
},
|
||||
},
|
||||
},
|
||||
];
|
||||
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"name": "@library/shared-types",
|
||||
"version": "0.0.1"
|
||||
}
|
||||
@@ -1,4 +1,9 @@
|
||||
export * from './lib/game.types';
|
||||
export * from './lib/book.types';
|
||||
export * from './lib/music.types';
|
||||
export * from './lib/auth.types';
|
||||
/**
|
||||
* @copyright 2026 NHCarrigan
|
||||
* @license Naomi's Public License
|
||||
* @author Naomi Carrigan
|
||||
*/
|
||||
export * from "./lib/game.types";
|
||||
export * from "./lib/book.types";
|
||||
export * from "./lib/music.types";
|
||||
export type * from "./lib/auth.types";
|
||||
@@ -1,3 +1,9 @@
|
||||
/**
|
||||
* @copyright 2026 NHCarrigan
|
||||
* @license Naomi's Public License
|
||||
* @author Naomi Carrigan
|
||||
*/
|
||||
|
||||
export interface User {
|
||||
id: string;
|
||||
email: string;
|
||||
@@ -7,7 +13,10 @@ export interface User {
|
||||
}
|
||||
|
||||
export interface JwtPayload {
|
||||
sub: string; // user id
|
||||
/**
|
||||
* User id.
|
||||
*/
|
||||
sub: string;
|
||||
email: string;
|
||||
username: string;
|
||||
iat?: number;
|
||||
|
||||
@@ -1,7 +1,13 @@
|
||||
/**
|
||||
* @copyright 2026 NHCarrigan
|
||||
* @copyright 2026 NHCarrigan
|
||||
* @license Naomi's Public License
|
||||
*/
|
||||
|
||||
export enum BookStatus {
|
||||
READING = 'READING',
|
||||
FINISHED = 'FINISHED',
|
||||
TO_READ = 'TO_READ',
|
||||
reading = "READING",
|
||||
finished = "FINISHED",
|
||||
toRead = "TO_READ",
|
||||
}
|
||||
|
||||
export interface Book {
|
||||
|
||||
@@ -1,7 +1,13 @@
|
||||
/**
|
||||
* @copyright 2026 NHCarrigan
|
||||
* @copyright 2026 NHCarrigan
|
||||
* @license Naomi's Public License
|
||||
*/
|
||||
|
||||
export enum GameStatus {
|
||||
PLAYING = 'PLAYING',
|
||||
COMPLETED = 'COMPLETED',
|
||||
BACKLOG = 'BACKLOG',
|
||||
playing = "PLAYING",
|
||||
completed = "COMPLETED",
|
||||
backlog = "BACKLOG",
|
||||
}
|
||||
|
||||
export interface Game {
|
||||
|
||||
@@ -1,13 +1,19 @@
|
||||
/**
|
||||
* @copyright 2026 NHCarrigan
|
||||
* @copyright 2026 NHCarrigan
|
||||
* @license Naomi's Public License
|
||||
*/
|
||||
|
||||
export enum MusicType {
|
||||
ALBUM = 'ALBUM',
|
||||
SINGLE = 'SINGLE',
|
||||
EP = 'EP',
|
||||
album = "ALBUM",
|
||||
single = "SINGLE",
|
||||
ep = "EP",
|
||||
}
|
||||
|
||||
export enum MusicStatus {
|
||||
LISTENING = 'LISTENING',
|
||||
COMPLETED = 'COMPLETED',
|
||||
WANT_TO_LISTEN = 'WANT_TO_LISTEN',
|
||||
listening = "LISTENING",
|
||||
completed = "COMPLETED",
|
||||
wantToListen = "WANT_TO_LISTEN",
|
||||
}
|
||||
|
||||
export interface Music {
|
||||
|
||||
Reference in New Issue
Block a user