Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Viewer #2

Merged
merged 39 commits into from Feb 13, 2020
Merged
Show file tree
Hide file tree
Changes from 21 commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
64b4f7d
feature (app): add an Angular app
Jan 29, 2020
882745f
feature (lib): add an Angular library
Jan 29, 2020
a1fb290
refactor (package.json): add dependencies
Jan 29, 2020
935819a
feature (core): add core module
Jan 29, 2020
a5a96de
feature (viewer): add basic structure
Jan 29, 2020
271a719
feature (values): add component for text
Jan 29, 2020
2fa0ff3
feature (values): text value as string comp.
Jan 29, 2020
8294fa1
test (value): add tests for text as string value component
Jan 30, 2020
2c546d1
feature (values): do not return invalid values
Jan 30, 2020
1a8b787
test (value): add tests for text as string value component
Jan 30, 2020
bc38701
feature (app): add test env for value editing
Jan 30, 2020
b3418d2
feature (app): edit and save a value
Feb 3, 2020
cdacac0
feature (app): create and save a value
Feb 3, 2020
9f71f8c
feature (app): create and save a value
Feb 3, 2020
dcedb03
test (value): add tests for text as string value component
Feb 3, 2020
a04e884
feature (values): move some logic to base class
Feb 3, 2020
050d0c1
feature (value): combine value and comment validator
Feb 6, 2020
8a2106d
feature (value): combine value and comment validator
Feb 6, 2020
e6559be
feature (app): get rid of nested subscriptions (still need to figure …
Feb 7, 2020
6ab3b1f
feature (value): add integer value component
mdelez Feb 7, 2020
dbf5475
feature (values): add custom validators
Feb 10, 2020
7ed459d
feature (value): add comments to members of the base class
Feb 10, 2020
96cf770
test (value): add tests for creating a text value
mdelez Feb 11, 2020
62e660b
feature (CRUD operations): add component to edit and display a value
Feb 11, 2020
e9feabe
test (value): optimize creating text value tests and add tests for up…
mdelez Feb 11, 2020
7b18dfd
feature (CRUD operations): use display edit component
Feb 11, 2020
45f5c93
feature (app init): add app init service
Feb 12, 2020
41d2e11
test (CRUD operations): add test for DisplayEditComponent
Feb 12, 2020
edc2199
test (CRUD operations): add test for DisplayEditComponent
Feb 12, 2020
e6b23ee
fix (CRUD operations): fix import
Feb 12, 2020
da11edb
test (CRUD operations): add test for DisplayEditComponent
Feb 12, 2020
2d9d8f8
test (CRUD operations): improve test for DisplayEditComponent
Feb 12, 2020
90f2a50
refactor (selector prefix): change prefix to kui
Feb 13, 2020
7826bc5
refactor (values): reformat file, remove selectors on test parent com…
Feb 13, 2020
f726a75
test (values): add test for IntValueComponent
mdelez Feb 13, 2020
162f77a
test (values): refactored test values
mdelez Feb 13, 2020
87aa27d
test (values): added more tests for displaying IntValueComponent
mdelez Feb 13, 2020
6f5541f
test (values): added tests for creating an int value
mdelez Feb 13, 2020
7c5c53e
test (values): added test for unsubscribing when destroyed
mdelez Feb 13, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
13 changes: 13 additions & 0 deletions .editorconfig
@@ -0,0 +1,13 @@
# Editor configuration, see https://editorconfig.org
root = true

[*]
charset = utf-8
indent_style = space
indent_size = 2
insert_final_newline = true
trim_trailing_whitespace = true

[*.md]
max_line_length = off
trim_trailing_whitespace = false
47 changes: 47 additions & 0 deletions .gitignore
@@ -0,0 +1,47 @@
# See http://help.github.com/ignore-files/ for more about ignoring files.

# compiled output
/dist
/tmp
/out-tsc
# Only exists if Bazel was run
/bazel-out

# dependencies
/node_modules
/.yalc

# profiling files
chrome-profiler-events*.json
speed-measure-plugin*.json

# IDEs and editors
/.idea
.project
.classpath
.c9/
*.launch
.settings/
*.sublime-workspace

# IDE - VSCode
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
.history/*

# misc
/.sass-cache
/connect.lock
/coverage
/libpeerconnection.log
npm-debug.log
yarn-error.log
testem.log
/typings

# System Files
.DS_Store
Thumbs.db
164 changes: 164 additions & 0 deletions angular.json
@@ -0,0 +1,164 @@
{
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"version": 1,
"newProjectRoot": "projects",
"projects": {
"knora-ui-ng-lib": {
"projectType": "application",
"schematics": {
"@schematics/angular:component": {
"style": "scss"
}
},
"root": "",
"sourceRoot": "src",
"prefix": "app",
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
"outputPath": "dist/knora-ui-ng-lib",
"index": "src/index.html",
"main": "src/main.ts",
"polyfills": "src/polyfills.ts",
"tsConfig": "tsconfig.app.json",
"aot": false,
"assets": [
"src/favicon.ico",
"src/assets"
],
"styles": [
"src/styles.scss"
],
"scripts": []
},
"configurations": {
"production": {
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.prod.ts"
}
],
"optimization": true,
"outputHashing": "all",
"sourceMap": false,
"extractCss": true,
"namedChunks": false,
"aot": true,
"extractLicenses": true,
"vendorChunk": false,
"buildOptimizer": true,
"budgets": [
{
"type": "initial",
"maximumWarning": "2mb",
"maximumError": "5mb"
},
{
"type": "anyComponentStyle",
"maximumWarning": "6kb",
"maximumError": "10kb"
}
]
}
}
},
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"options": {
"browserTarget": "knora-ui-ng-lib:build"
},
"configurations": {
"production": {
"browserTarget": "knora-ui-ng-lib:build:production"
}
}
},
"extract-i18n": {
"builder": "@angular-devkit/build-angular:extract-i18n",
"options": {
"browserTarget": "knora-ui-ng-lib:build"
}
},
"test": {
"builder": "@angular-devkit/build-angular:karma",
"options": {
"main": "src/test.ts",
"polyfills": "src/polyfills.ts",
"tsConfig": "tsconfig.spec.json",
"karmaConfig": "karma.conf.js",
"assets": [
"src/favicon.ico",
"src/assets"
],
"styles": [
"src/styles.scss"
],
"scripts": []
}
},
"lint": {
"builder": "@angular-devkit/build-angular:tslint",
"options": {
"tsConfig": [
"tsconfig.app.json",
"tsconfig.spec.json",
"e2e/tsconfig.json"
],
"exclude": [
"**/node_modules/**"
]
}
},
"e2e": {
"builder": "@angular-devkit/build-angular:protractor",
"options": {
"protractorConfig": "e2e/protractor.conf.js",
"devServerTarget": "knora-ui-ng-lib:serve"
},
"configurations": {
"production": {
"devServerTarget": "knora-ui-ng-lib:serve:production"
}
}
}
}
},
"knora-ui": {
"projectType": "library",
"root": "projects/knora-ui",
"sourceRoot": "projects/knora-ui/src",
"prefix": "lib",
"architect": {
"build": {
"builder": "@angular-devkit/build-ng-packagr:build",
"options": {
"tsConfig": "projects/knora-ui/tsconfig.lib.json",
"project": "projects/knora-ui/ng-package.json"
}
},
"test": {
"builder": "@angular-devkit/build-angular:karma",
"options": {
"main": "projects/knora-ui/src/test.ts",
"tsConfig": "projects/knora-ui/tsconfig.spec.json",
"karmaConfig": "projects/knora-ui/karma.conf.js"
}
},
"lint": {
"builder": "@angular-devkit/build-angular:tslint",
"options": {
"tsConfig": [
"projects/knora-ui/tsconfig.lib.json",
"projects/knora-ui/tsconfig.spec.json"
],
"exclude": [
"**/node_modules/**"
]
}
}
}
}},
"defaultProject": "knora-ui-ng-lib"
}
12 changes: 12 additions & 0 deletions browserslist
@@ -0,0 +1,12 @@
# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.
# For additional information regarding the format and rule options, please see:
# https://github.com/browserslist/browserslist#queries

# You can see what browsers were selected by your queries by running:
# npx browserslist

> 0.5%
last 2 versions
Firefox ESR
not dead
not IE 9-11 # For IE 9-11 support, remove 'not'.
32 changes: 32 additions & 0 deletions e2e/protractor.conf.js
@@ -0,0 +1,32 @@
// @ts-check
// Protractor configuration file, see link for more information
// https://github.com/angular/protractor/blob/master/lib/config.ts

const { SpecReporter } = require('jasmine-spec-reporter');

/**
* @type { import("protractor").Config }
*/
exports.config = {
allScriptsTimeout: 11000,
specs: [
'./src/**/*.e2e-spec.ts'
],
capabilities: {
browserName: 'chrome'
},
directConnect: true,
baseUrl: 'http://localhost:4200/',
framework: 'jasmine',
jasmineNodeOpts: {
showColors: true,
defaultTimeoutInterval: 30000,
print: function() {}
},
onPrepare() {
require('ts-node').register({
project: require('path').join(__dirname, './tsconfig.json')
});
jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));
}
};
23 changes: 23 additions & 0 deletions e2e/src/app.e2e-spec.ts
@@ -0,0 +1,23 @@
import { AppPage } from './app.po';
import { browser, logging } from 'protractor';

describe('workspace-project App', () => {
let page: AppPage;

beforeEach(() => {
page = new AppPage();
});

it('should display welcome message', () => {
page.navigateTo();
expect(page.getTitleText()).toEqual('knora-ui-ng-lib app is running!');
});

afterEach(async () => {
// Assert that there are no errors emitted from the browser
const logs = await browser.manage().logs().get(logging.Type.BROWSER);
expect(logs).not.toContain(jasmine.objectContaining({
level: logging.Level.SEVERE,
} as logging.Entry));
});
});
11 changes: 11 additions & 0 deletions e2e/src/app.po.ts
@@ -0,0 +1,11 @@
import { browser, by, element } from 'protractor';

export class AppPage {
navigateTo() {
return browser.get(browser.baseUrl) as Promise<any>;
}

getTitleText() {
return element(by.css('app-root .content span')).getText() as Promise<string>;
}
}
13 changes: 13 additions & 0 deletions e2e/tsconfig.json
@@ -0,0 +1,13 @@
{
"extends": "../tsconfig.json",
"compilerOptions": {
"outDir": "../out-tsc/e2e",
"module": "commonjs",
"target": "es5",
"types": [
"jasmine",
"jasminewd2",
"node"
]
}
}
32 changes: 32 additions & 0 deletions karma.conf.js
@@ -0,0 +1,32 @@
// Karma configuration file, see link for more information
// https://karma-runner.github.io/1.0/config/configuration-file.html

module.exports = function (config) {
config.set({
basePath: '',
frameworks: ['jasmine', '@angular-devkit/build-angular'],
plugins: [
require('karma-jasmine'),
require('karma-chrome-launcher'),
require('karma-jasmine-html-reporter'),
require('karma-coverage-istanbul-reporter'),
require('@angular-devkit/build-angular/plugins/karma')
],
client: {
clearContext: false // leave Jasmine Spec Runner output visible in browser
},
coverageIstanbulReporter: {
dir: require('path').join(__dirname, './coverage/knora-ui-ng-lib'),
reports: ['html', 'lcovonly', 'text-summary'],
fixWebpackSourcePaths: true
},
reporters: ['progress', 'kjhtml'],
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: true,
browsers: ['Chrome'],
singleRun: false,
restartOnFileChange: true
});
};