From 9e722ddfb3825fb29d6298025baaaa033120d017 Mon Sep 17 00:00:00 2001 From: undergroundwires Date: Wed, 15 Jul 2020 03:18:38 +0100 Subject: [PATCH] fixed script errors & added tests --- src/application/Parser/ApplicationParser.ts | 12 ++++++------ src/application/State/ApplicationState.ts | 11 ++++++----- src/application/application.yaml | 7 +------ src/application/application.yaml.d.ts | 2 +- .../application/Parser/ApplicationParser.spec.ts | 12 ++++++++++++ 5 files changed, 26 insertions(+), 18 deletions(-) create mode 100644 tests/unit/application/Parser/ApplicationParser.spec.ts diff --git a/src/application/Parser/ApplicationParser.ts b/src/application/Parser/ApplicationParser.ts index 73163c53..fb42b844 100644 --- a/src/application/Parser/ApplicationParser.ts +++ b/src/application/Parser/ApplicationParser.ts @@ -1,20 +1,20 @@ import { Category } from '../../domain/Category'; import { Application } from '../../domain/Application'; -import applicationFile from 'js-yaml-loader!./../application.yaml'; +import { ApplicationYaml } from 'js-yaml-loader!./../application.yaml'; import { parseCategory } from './CategoryParser'; -export function parseApplication(): Application { +export function parseApplication(content: ApplicationYaml): Application { const categories = new Array(); - if (!applicationFile.actions || applicationFile.actions.length <= 0) { + if (!content.actions || content.actions.length <= 0) { throw new Error('Application does not define any action'); } - for (const action of applicationFile.actions) { + for (const action of content.actions) { const category = parseCategory(action); categories.push(category); } const app = new Application( - applicationFile.name, - applicationFile.repositoryUrl, + content.name, + content.repositoryUrl, process.env.VUE_APP_VERSION, categories); return app; diff --git a/src/application/State/ApplicationState.ts b/src/application/State/ApplicationState.ts index 2e2c12c9..581c88af 100644 --- a/src/application/State/ApplicationState.ts +++ b/src/application/State/ApplicationState.ts @@ -3,13 +3,14 @@ import { IUserFilter } from './Filter/IUserFilter'; import { ApplicationCode } from './Code/ApplicationCode'; import { UserSelection } from './Selection/UserSelection'; import { IUserSelection } from './Selection/IUserSelection'; -import { AsyncLazy } from '../../infrastructure/Threading/AsyncLazy'; -import { Signal } from '../../infrastructure/Events/Signal'; +import { AsyncLazy } from '@/infrastructure/Threading/AsyncLazy'; +import { Signal } from '@/infrastructure/Events/Signal'; import { parseApplication } from '../Parser/ApplicationParser'; import { IApplicationState } from './IApplicationState'; -import { Script } from '../../domain/Script'; -import { Application } from '../../domain/Application'; +import { Script } from '@/domain/Script'; +import { Application } from '@/domain/Application'; import { IApplicationCode } from './Code/IApplicationCode'; +import applicationFile from 'js-yaml-loader!@/application/application.yaml'; /** Mutatable singleton application state that's the single source of truth throughout the application */ export class ApplicationState implements IApplicationState { @@ -20,7 +21,7 @@ export class ApplicationState implements IApplicationState { /** Application instance with all scripts. */ private static instance = new AsyncLazy(() => { - const application = parseApplication(); + const application = parseApplication(applicationFile); const selectedScripts = new Array