mirror of https://github.com/ghostfolio/ghostfolio
				
				
			
							committed by
							
								
								Thomas
							
						
					
				
				 26 changed files with 4329 additions and 146 deletions
			
			
		@ -0,0 +1,11 @@ | 
				
			|||
module.exports = { | 
				
			|||
  stories: [], | 
				
			|||
  addons: ['@storybook/addon-essentials'] | 
				
			|||
  // uncomment the property below if you want to apply some webpack config globally
 | 
				
			|||
  // webpackFinal: async (config, { configType }) => {
 | 
				
			|||
  //   // Make whatever fine-grained changes you need that should apply to all storybook configs
 | 
				
			|||
 | 
				
			|||
  //   // Return the altered config
 | 
				
			|||
  //   return config;
 | 
				
			|||
  // },
 | 
				
			|||
}; | 
				
			|||
@ -0,0 +1,10 @@ | 
				
			|||
{ | 
				
			|||
  "extends": "../tsconfig.base.json", | 
				
			|||
  "exclude": [ | 
				
			|||
    "../**/*.spec.js", | 
				
			|||
    "../**/*.spec.ts", | 
				
			|||
    "../**/*.spec.tsx", | 
				
			|||
    "../**/*.spec.jsx" | 
				
			|||
  ], | 
				
			|||
  "include": ["../**/*"] | 
				
			|||
} | 
				
			|||
@ -0,0 +1,17 @@ | 
				
			|||
{ | 
				
			|||
  "extends": ["plugin:cypress/recommended", "../../.eslintrc.json"], | 
				
			|||
  "ignorePatterns": ["!**/*"], | 
				
			|||
  "overrides": [ | 
				
			|||
    { | 
				
			|||
      "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], | 
				
			|||
      "rules": {} | 
				
			|||
    }, | 
				
			|||
    { | 
				
			|||
      "files": ["src/plugins/index.js"], | 
				
			|||
      "rules": { | 
				
			|||
        "@typescript-eslint/no-var-requires": "off", | 
				
			|||
        "no-undef": "off" | 
				
			|||
      } | 
				
			|||
    } | 
				
			|||
  ] | 
				
			|||
} | 
				
			|||
@ -0,0 +1,13 @@ | 
				
			|||
{ | 
				
			|||
  "fileServerFolder": ".", | 
				
			|||
  "fixturesFolder": "./src/fixtures", | 
				
			|||
  "integrationFolder": "./src/integration", | 
				
			|||
  "modifyObstructiveCode": false, | 
				
			|||
  "supportFile": "./src/support/index.ts", | 
				
			|||
  "pluginsFile": "./src/plugins/index", | 
				
			|||
  "video": true, | 
				
			|||
  "videosFolder": "../../dist/cypress/apps/ui-e2e/videos", | 
				
			|||
  "screenshotsFolder": "../../dist/cypress/apps/ui-e2e/screenshots", | 
				
			|||
  "chromeWebSecurity": false, | 
				
			|||
  "baseUrl": "http://localhost:4400" | 
				
			|||
} | 
				
			|||
@ -0,0 +1,4 @@ | 
				
			|||
{ | 
				
			|||
  "name": "Using fixtures to represent data", | 
				
			|||
  "email": "hello@cypress.io" | 
				
			|||
} | 
				
			|||
@ -0,0 +1,22 @@ | 
				
			|||
// ***********************************************************
 | 
				
			|||
// This example plugins/index.js can be used to load plugins
 | 
				
			|||
//
 | 
				
			|||
// You can change the location of this file or turn off loading
 | 
				
			|||
// the plugins file with the 'pluginsFile' configuration option.
 | 
				
			|||
//
 | 
				
			|||
// You can read more here:
 | 
				
			|||
// https://on.cypress.io/plugins-guide
 | 
				
			|||
// ***********************************************************
 | 
				
			|||
 | 
				
			|||
// This function is called when a project is opened or re-opened (e.g. due to
 | 
				
			|||
// the project's config changing)
 | 
				
			|||
 | 
				
			|||
const { preprocessTypescript } = require('@nrwl/cypress/plugins/preprocessor'); | 
				
			|||
 | 
				
			|||
module.exports = (on, config) => { | 
				
			|||
  // `on` is used to hook into various events Cypress emits
 | 
				
			|||
  // `config` is the resolved Cypress config
 | 
				
			|||
 | 
				
			|||
  // Preprocess Typescript file using Nx helper
 | 
				
			|||
  on('file:preprocessor', preprocessTypescript(config)); | 
				
			|||
}; | 
				
			|||
@ -0,0 +1,33 @@ | 
				
			|||
// ***********************************************
 | 
				
			|||
// This example commands.js 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
 | 
				
			|||
declare namespace Cypress { | 
				
			|||
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
 | 
				
			|||
  interface Chainable<Subject> { | 
				
			|||
    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); | 
				
			|||
}); | 
				
			|||
//
 | 
				
			|||
// -- 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) => { ... })
 | 
				
			|||
@ -0,0 +1,17 @@ | 
				
			|||
// ***********************************************************
 | 
				
			|||
// This example support/index.js 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.js using ES2015 syntax:
 | 
				
			|||
import './commands'; | 
				
			|||
@ -0,0 +1,10 @@ | 
				
			|||
{ | 
				
			|||
  "extends": "../../tsconfig.base.json", | 
				
			|||
  "compilerOptions": { | 
				
			|||
    "sourceMap": false, | 
				
			|||
    "outDir": "../../dist/out-tsc", | 
				
			|||
    "allowJs": true, | 
				
			|||
    "types": ["cypress", "node"] | 
				
			|||
  }, | 
				
			|||
  "include": ["src/**/*.ts", "src/**/*.js"] | 
				
			|||
} | 
				
			|||
@ -0,0 +1,36 @@ | 
				
			|||
{ | 
				
			|||
  "extends": ["../../.eslintrc.json"], | 
				
			|||
  "ignorePatterns": ["!**/*"], | 
				
			|||
  "overrides": [ | 
				
			|||
    { | 
				
			|||
      "files": ["*.ts"], | 
				
			|||
      "extends": [ | 
				
			|||
        "plugin:@nrwl/nx/angular", | 
				
			|||
        "plugin:@angular-eslint/template/process-inline-templates" | 
				
			|||
      ], | 
				
			|||
      "rules": { | 
				
			|||
        "@angular-eslint/directive-selector": [ | 
				
			|||
          "error", | 
				
			|||
          { | 
				
			|||
            "type": "attribute", | 
				
			|||
            "prefix": "ghostfolio", | 
				
			|||
            "style": "camelCase" | 
				
			|||
          } | 
				
			|||
        ], | 
				
			|||
        "@angular-eslint/component-selector": [ | 
				
			|||
          "error", | 
				
			|||
          { | 
				
			|||
            "type": "element", | 
				
			|||
            "prefix": "ghostfolio", | 
				
			|||
            "style": "kebab-case" | 
				
			|||
          } | 
				
			|||
        ] | 
				
			|||
      } | 
				
			|||
    }, | 
				
			|||
    { | 
				
			|||
      "files": ["*.html"], | 
				
			|||
      "extends": ["plugin:@nrwl/nx/angular-template"], | 
				
			|||
      "rules": {} | 
				
			|||
    } | 
				
			|||
  ] | 
				
			|||
} | 
				
			|||
@ -0,0 +1,24 @@ | 
				
			|||
const rootMain = require('../../../.storybook/main'); | 
				
			|||
 | 
				
			|||
module.exports = { | 
				
			|||
  ...rootMain, | 
				
			|||
 | 
				
			|||
  core: { ...rootMain.core, builder: 'webpack5' }, | 
				
			|||
 | 
				
			|||
  stories: [ | 
				
			|||
    ...rootMain.stories, | 
				
			|||
    '../src/lib/**/*.stories.mdx', | 
				
			|||
    '../src/lib/**/*.stories.@(js|jsx|ts|tsx)' | 
				
			|||
  ], | 
				
			|||
  addons: [...rootMain.addons], | 
				
			|||
  webpackFinal: async (config, { configType }) => { | 
				
			|||
    // apply any global webpack configs that might have been specified in .storybook/main.js
 | 
				
			|||
    if (rootMain.webpackFinal) { | 
				
			|||
      config = await rootMain.webpackFinal(config, { configType }); | 
				
			|||
    } | 
				
			|||
 | 
				
			|||
    // add your own webpack tweaks if needed
 | 
				
			|||
 | 
				
			|||
    return config; | 
				
			|||
  } | 
				
			|||
}; | 
				
			|||
@ -0,0 +1,9 @@ | 
				
			|||
{ | 
				
			|||
  "extends": "../tsconfig.json", | 
				
			|||
  "compilerOptions": { | 
				
			|||
    "emitDecoratorMetadata": true | 
				
			|||
  }, | 
				
			|||
 | 
				
			|||
  "exclude": ["../**/*.spec.ts"], | 
				
			|||
  "include": ["../src/**/*", "*.js"] | 
				
			|||
} | 
				
			|||
@ -0,0 +1,7 @@ | 
				
			|||
# ui | 
				
			|||
 | 
				
			|||
This library was generated with [Nx](https://nx.dev). | 
				
			|||
 | 
				
			|||
## Running unit tests | 
				
			|||
 | 
				
			|||
Run `nx test ui` to execute the unit tests. | 
				
			|||
@ -0,0 +1,20 @@ | 
				
			|||
module.exports = { | 
				
			|||
  displayName: 'ui', | 
				
			|||
  preset: '../../jest.preset.js', | 
				
			|||
  setupFilesAfterEnv: ['<rootDir>/src/test-setup.ts'], | 
				
			|||
  globals: { | 
				
			|||
    'ts-jest': { | 
				
			|||
      tsconfig: '<rootDir>/tsconfig.spec.json', | 
				
			|||
      stringifyContentPathRegex: '\\.(html|svg)$' | 
				
			|||
    } | 
				
			|||
  }, | 
				
			|||
  coverageDirectory: '../../coverage/libs/ui', | 
				
			|||
  transform: { | 
				
			|||
    '^.+\\.(ts|js|html)$': 'jest-preset-angular' | 
				
			|||
  }, | 
				
			|||
  snapshotSerializers: [ | 
				
			|||
    'jest-preset-angular/build/serializers/no-ng-attributes', | 
				
			|||
    'jest-preset-angular/build/serializers/ng-snapshot', | 
				
			|||
    'jest-preset-angular/build/serializers/html-comment' | 
				
			|||
  ] | 
				
			|||
}; | 
				
			|||
@ -0,0 +1 @@ | 
				
			|||
export * from './lib/ui.module'; | 
				
			|||
@ -0,0 +1,7 @@ | 
				
			|||
import { NgModule } from '@angular/core'; | 
				
			|||
import { CommonModule } from '@angular/common'; | 
				
			|||
 | 
				
			|||
@NgModule({ | 
				
			|||
  imports: [CommonModule] | 
				
			|||
}) | 
				
			|||
export class UiModule {} | 
				
			|||
@ -0,0 +1 @@ | 
				
			|||
import 'jest-preset-angular/setup-jest'; | 
				
			|||
@ -0,0 +1,27 @@ | 
				
			|||
{ | 
				
			|||
  "extends": "../../tsconfig.base.json", | 
				
			|||
  "files": [], | 
				
			|||
  "include": [], | 
				
			|||
  "references": [ | 
				
			|||
    { | 
				
			|||
      "path": "./tsconfig.lib.json" | 
				
			|||
    }, | 
				
			|||
    { | 
				
			|||
      "path": "./tsconfig.spec.json" | 
				
			|||
    }, | 
				
			|||
    { | 
				
			|||
      "path": "./.storybook/tsconfig.json" | 
				
			|||
    } | 
				
			|||
  ], | 
				
			|||
  "compilerOptions": { | 
				
			|||
    "forceConsistentCasingInFileNames": true, | 
				
			|||
    "strict": true, | 
				
			|||
    "noImplicitReturns": true, | 
				
			|||
    "noFallthroughCasesInSwitch": true | 
				
			|||
  }, | 
				
			|||
  "angularCompilerOptions": { | 
				
			|||
    "strictInjectionParameters": true, | 
				
			|||
    "strictInputAccessModifiers": true, | 
				
			|||
    "strictTemplates": true | 
				
			|||
  } | 
				
			|||
} | 
				
			|||
@ -0,0 +1,19 @@ | 
				
			|||
{ | 
				
			|||
  "extends": "./tsconfig.json", | 
				
			|||
  "compilerOptions": { | 
				
			|||
    "outDir": "../../dist/out-tsc", | 
				
			|||
    "target": "es2015", | 
				
			|||
    "declaration": true, | 
				
			|||
    "declarationMap": true, | 
				
			|||
    "inlineSources": true, | 
				
			|||
    "types": [], | 
				
			|||
    "lib": ["dom", "es2018"] | 
				
			|||
  }, | 
				
			|||
  "exclude": [ | 
				
			|||
    "src/test-setup.ts", | 
				
			|||
    "**/*.spec.ts", | 
				
			|||
    "**/*.stories.ts", | 
				
			|||
    "**/*.stories.js" | 
				
			|||
  ], | 
				
			|||
  "include": ["**/*.ts"] | 
				
			|||
} | 
				
			|||
@ -0,0 +1,10 @@ | 
				
			|||
{ | 
				
			|||
  "extends": "./tsconfig.json", | 
				
			|||
  "compilerOptions": { | 
				
			|||
    "outDir": "../../dist/out-tsc", | 
				
			|||
    "module": "commonjs", | 
				
			|||
    "types": ["jest", "node"] | 
				
			|||
  }, | 
				
			|||
  "files": ["src/test-setup.ts"], | 
				
			|||
  "include": ["**/*.spec.ts", "**/*.d.ts"] | 
				
			|||
} | 
				
			|||
								
									
										File diff suppressed because it is too large
									
								
							
						
					
					Loading…
					
					
				
		Reference in new issue