Reverse previous commit
							parent
							
								
									5195d402ce
								
							
						
					
					
						commit
						5d7f7cfd5e
					
				| 
						 | 
					@ -0,0 +1,24 @@
 | 
				
			||||||
 | 
					import { browser, element, by } from 'protractor';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					describe('Dashboard', function() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  beforeEach(() => {
 | 
				
			||||||
 | 
					    browser.get('/')
 | 
				
			||||||
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  it('should display the correct heading', () => {
 | 
				
			||||||
 | 
					    const heading = element(by.css('h1')).getText();
 | 
				
			||||||
 | 
					    const headings = element.all(by.css('h1')).getText();
 | 
				
			||||||
 | 
					    console.log(headings)
 | 
				
			||||||
 | 
					    heading.then((headingText) => {
 | 
				
			||||||
 | 
					      console.log(headingText);
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					    expect(heading).toEqual('Dashboard');
 | 
				
			||||||
 | 
					    expect(headings).toContain('Dashboard');
 | 
				
			||||||
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  it('should redirect to /dashboard', () => {
 | 
				
			||||||
 | 
					    expect(browser.getCurrentUrl()).toContain('/dashboard');
 | 
				
			||||||
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,12 @@
 | 
				
			||||||
 | 
					import { browser} from 'protractor';
 | 
				
			||||||
 | 
					import * as fs from 'fs';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					declare var Buffer, module: any;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export function takeScreenshot(filename: string) {
 | 
				
			||||||
 | 
					  return browser.takeScreenshot().then((data) => {
 | 
				
			||||||
 | 
					    const stream = fs.createWriteStream(filename);
 | 
				
			||||||
 | 
					    stream.write(new Buffer(data, 'base64'));
 | 
				
			||||||
 | 
					    stream.end();
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,26 @@
 | 
				
			||||||
 | 
					import {takeScreenshot} from '../helpers/take_screenshot';
 | 
				
			||||||
 | 
					import { browser } from 'protractor';
 | 
				
			||||||
 | 
					import {EditTaskPage} from './edit-task.po';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					describe('Edit Tasks', function() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  let page: EditTaskPage;
 | 
				
			||||||
 | 
					  beforeEach(() => {
 | 
				
			||||||
 | 
					    page = new EditTaskPage();
 | 
				
			||||||
 | 
					    page.navigateToNewPage();
 | 
				
			||||||
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  it('should change page when accepting alert', () => {
 | 
				
			||||||
 | 
					    page.fillForm('New Task', 'BACKLOG');
 | 
				
			||||||
 | 
					    page.cancel();
 | 
				
			||||||
 | 
					    page.getAlert().accept(); // Klick auf OK
 | 
				
			||||||
 | 
					    expect(browser.getCurrentUrl()).not.toContain(page.newUrl);
 | 
				
			||||||
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  it('should stay on page when discarding alert', () => {
 | 
				
			||||||
 | 
					    page.fillForm('New Task', 'IN_PROGRESS');
 | 
				
			||||||
 | 
					    page.cancel();
 | 
				
			||||||
 | 
					    page.getAlert().dismiss(); // Klick auf Abbrechen
 | 
				
			||||||
 | 
					    expect(browser.getCurrentUrl()).toContain(page.newUrl);
 | 
				
			||||||
 | 
					  });
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,34 @@
 | 
				
			||||||
 | 
					import { browser, element, by, protractor} from 'protractor';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export class EditTaskPage {
 | 
				
			||||||
 | 
					  newUrl = '/tasks/new';
 | 
				
			||||||
 | 
					  navigateToNewPage() {
 | 
				
			||||||
 | 
					    return browser.get(this.newUrl);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  navigateToEditPage(id: number) {
 | 
				
			||||||
 | 
					    return browser.get(`tasks/edit/${id}`);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  fillForm(title: string, state: string) {
 | 
				
			||||||
 | 
					    element(by.name('title')).sendKeys(title);
 | 
				
			||||||
 | 
					    element(by.name('state')).element(by.css(`[value="${state}"]`))
 | 
				
			||||||
 | 
					      .click();
 | 
				
			||||||
 | 
					    //Firefox HACK:
 | 
				
			||||||
 | 
					    browser.actions().sendKeys( protractor.Key.ENTER ).perform();
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  save() {
 | 
				
			||||||
 | 
					    element(by.id('save')).click();
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  cancel() {
 | 
				
			||||||
 | 
					    return element(by.id('cancel')).click();
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  getAlert() {
 | 
				
			||||||
 | 
					    return browser.switchTo().alert();
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,25 @@
 | 
				
			||||||
 | 
					import { browser, element, by } from 'protractor';
 | 
				
			||||||
 | 
					import {takeScreenshot} from '../helpers/take_screenshot';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					describe('Task List (without Page Object)', () => {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  beforeEach(() => {
 | 
				
			||||||
 | 
					    browser.get('/tasks')
 | 
				
			||||||
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  it('should allow searching for tasks', () => {
 | 
				
			||||||
 | 
					    element(by.css('#search-tasks')).sendKeys('Ersten');
 | 
				
			||||||
 | 
					    browser.sleep(500);
 | 
				
			||||||
 | 
					    const count =  element.all(by.className('task-list-entry')).count();
 | 
				
			||||||
 | 
					    expect(count).toEqual(1);
 | 
				
			||||||
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  it('should work with no search results', () => {
 | 
				
			||||||
 | 
					    element(by.css('#search-tasks')).sendKeys('Ich existiere nicht');
 | 
				
			||||||
 | 
					    browser.sleep(500);
 | 
				
			||||||
 | 
					    const count =  element.all(by.className('task-list-entry')).count();
 | 
				
			||||||
 | 
					    expect(count).toEqual(0);
 | 
				
			||||||
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,54 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import {takeScreenshot} from '../helpers/take_screenshot';
 | 
				
			||||||
 | 
					import {TaskListPage} from './task-list.po';
 | 
				
			||||||
 | 
					import { browser } from 'protractor';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					describe('TaskList', function () {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  let page: TaskListPage;
 | 
				
			||||||
 | 
					  beforeEach(() => {
 | 
				
			||||||
 | 
					    page = new TaskListPage();
 | 
				
			||||||
 | 
					    page.navigateTo();
 | 
				
			||||||
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  xit('should allow to create new tasks (forgot to press save)', () => {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    const editPage = page.gotoNewTaskView();
 | 
				
			||||||
 | 
					    editPage.fillForm('New Task', 'BACKLOG');
 | 
				
			||||||
 | 
					   // editPage.save();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    expect(page.checkTaskDisplayed('New Task')).not.toBeNull();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  it('should allow searching for tasks', () => {
 | 
				
			||||||
 | 
					    page.searchForTasks('Ersten');
 | 
				
			||||||
 | 
					    expect(page.getTaskCount()).toEqual(1);
 | 
				
			||||||
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  it('should work with no search results', () => {
 | 
				
			||||||
 | 
					    page.searchForTasks('Ich existiere nicht.');
 | 
				
			||||||
 | 
					    expect(page.getTaskCount()).toEqual(0);
 | 
				
			||||||
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  it('should allow to create new tasks', () => {
 | 
				
			||||||
 | 
					    const taskTitle = `New Task ${new Date().getTime()}`;
 | 
				
			||||||
 | 
					    const editPage = page.gotoNewTaskView();
 | 
				
			||||||
 | 
					    editPage.fillForm(taskTitle, 'IN_PROGRESS');
 | 
				
			||||||
 | 
					    editPage.save();
 | 
				
			||||||
 | 
					    takeScreenshot('createTaskFailure.png');
 | 
				
			||||||
 | 
					    page.checkTaskDisplayed(taskTitle);
 | 
				
			||||||
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  it('should add new tasks to the displayed list', () => {
 | 
				
			||||||
 | 
					    page.getTaskCount().then(count => {
 | 
				
			||||||
 | 
					      const editPage = page.gotoNewTaskView();
 | 
				
			||||||
 | 
					      editPage.fillForm('New Task', 'IN_PROGRESS');
 | 
				
			||||||
 | 
					      editPage.save();
 | 
				
			||||||
 | 
					      expect(page.getTaskCount()).toEqual(count + 1);
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,32 @@
 | 
				
			||||||
 | 
					import { browser, element, by} from 'protractor';
 | 
				
			||||||
 | 
					import { ExpectedConditions as EC} from 'protractor';
 | 
				
			||||||
 | 
					import {EditTaskPage} from './edit-task.po';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export class TaskListPage {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  navigateTo() {
 | 
				
			||||||
 | 
					    return browser.get('/tasks');
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  searchForTasks(term: string) {
 | 
				
			||||||
 | 
					    element(by.css('#search-tasks')).sendKeys(term);
 | 
				
			||||||
 | 
					    browser.sleep(500);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  getTaskCount() {
 | 
				
			||||||
 | 
					    return element.all(by.className('task-list-entry')).count();
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  gotoNewTaskView() {
 | 
				
			||||||
 | 
					    element(by.linkText('Neue Aufgabe anlegen')).click();
 | 
				
			||||||
 | 
					    return new EditTaskPage();
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  checkTaskDisplayed(text: string) {
 | 
				
			||||||
 | 
					    const taskLink = element(by.linkText(text));
 | 
				
			||||||
 | 
					    browser.wait(EC.presenceOf(taskLink), 10000);
 | 
				
			||||||
 | 
					    return taskLink.isDisplayed();
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,19 @@
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  "compileOnSave": false,
 | 
				
			||||||
 | 
					  "compilerOptions": {
 | 
				
			||||||
 | 
					    "declaration": false,
 | 
				
			||||||
 | 
					    "emitDecoratorMetadata": true,
 | 
				
			||||||
 | 
					    "experimentalDecorators": true,
 | 
				
			||||||
 | 
					    "module": "commonjs",
 | 
				
			||||||
 | 
					    "moduleResolution": "node",
 | 
				
			||||||
 | 
					    "outDir": "../dist/out-tsc-e2e",
 | 
				
			||||||
 | 
					    "sourceMap": true,
 | 
				
			||||||
 | 
					    "target": "es5",
 | 
				
			||||||
 | 
					    "typeRoots": [
 | 
				
			||||||
 | 
					      "../node_modules/@types"
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
 | 
					    "types": [
 | 
				
			||||||
 | 
					      "jasmine", "node"
 | 
				
			||||||
 | 
					    ]
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,44 @@
 | 
				
			||||||
 | 
					// Karma configuration file, see link for more information
 | 
				
			||||||
 | 
					// https://karma-runner.github.io/0.13/config/configuration-file.html
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					module.exports = function (config) {
 | 
				
			||||||
 | 
					  config.set({
 | 
				
			||||||
 | 
					    basePath: '',
 | 
				
			||||||
 | 
					    frameworks: ['jasmine', 'angular-cli'],
 | 
				
			||||||
 | 
					    plugins: [
 | 
				
			||||||
 | 
					      require('karma-jasmine'),
 | 
				
			||||||
 | 
					      require('karma-chrome-launcher'),
 | 
				
			||||||
 | 
					      require('karma-remap-istanbul'),
 | 
				
			||||||
 | 
					      require('karma-spec-reporter'),
 | 
				
			||||||
 | 
					      require('angular-cli/plugins/karma')
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
 | 
					    files: [
 | 
				
			||||||
 | 
					      { pattern: './src/test.ts', watched: false }
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
 | 
					    preprocessors: {
 | 
				
			||||||
 | 
					      './src/test.ts': ['angular-cli']
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    mime: {
 | 
				
			||||||
 | 
					      'text/x-typescript': ['ts','tsx']
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    remapIstanbulReporter: {
 | 
				
			||||||
 | 
					      reports: {
 | 
				
			||||||
 | 
					        html: 'coverage',
 | 
				
			||||||
 | 
					        lcovonly: './coverage/coverage.lcov'
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    angularCli: {
 | 
				
			||||||
 | 
					      config: './angular-cli.json',
 | 
				
			||||||
 | 
					      environment: 'dev'
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    reporters: config.angularCli && config.angularCli.codeCoverage
 | 
				
			||||||
 | 
					              ? ['spec', 'karma-remap-istanbul']
 | 
				
			||||||
 | 
					              : ['spec'],
 | 
				
			||||||
 | 
					    port: 9876,
 | 
				
			||||||
 | 
					    colors: true,
 | 
				
			||||||
 | 
					    logLevel: config.LOG_INFO,
 | 
				
			||||||
 | 
					    autoWatch: true,
 | 
				
			||||||
 | 
					    browsers: ['Chrome'],
 | 
				
			||||||
 | 
					    singleRun: false
 | 
				
			||||||
 | 
					  });
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,52 @@
 | 
				
			||||||
 | 
					// Protractor configuration file, see link for more information
 | 
				
			||||||
 | 
					// https://github.com/angular/protractor/blob/master/docs/referenceConf.js
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*global jasmine */
 | 
				
			||||||
 | 
					var SpecReporter = require('jasmine-spec-reporter');
 | 
				
			||||||
 | 
					//var ScreenshotProcessor = require('./e2e/helpers/screen_shot_reporter.ts');
 | 
				
			||||||
 | 
					var HtmlScreenshotReporter = require('protractor-jasmine2-screenshot-reporter');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					var reporter = new HtmlScreenshotReporter({
 | 
				
			||||||
 | 
					  dest: 'tmp/screenshots',
 | 
				
			||||||
 | 
					  filename: 'test-report.html',
 | 
				
			||||||
 | 
					  cleanDestination: true,
 | 
				
			||||||
 | 
					  ignoreSkippedSpecs: true,
 | 
				
			||||||
 | 
					  captureOnlyFailedSpecs: false
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					exports.config = {
 | 
				
			||||||
 | 
					  allScriptsTimeout: 11000,
 | 
				
			||||||
 | 
					  specs: [
 | 
				
			||||||
 | 
					    './e2e/**/*.e2e-spec.ts'
 | 
				
			||||||
 | 
					  ],
 | 
				
			||||||
 | 
					  capabilities: {
 | 
				
			||||||
 | 
					    'browserName': 'firefox'
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  directConnect: true,
 | 
				
			||||||
 | 
					  baseUrl: 'http://localhost:4200/',
 | 
				
			||||||
 | 
					  framework: 'jasmine',
 | 
				
			||||||
 | 
					  jasmineNodeOpts: {
 | 
				
			||||||
 | 
					    showColors: true,
 | 
				
			||||||
 | 
					    defaultTimeoutInterval: 30000,
 | 
				
			||||||
 | 
					    print: function() {}
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  useAllAngular2AppRoots: true,
 | 
				
			||||||
 | 
					  beforeLaunch: function() {
 | 
				
			||||||
 | 
					    require('ts-node').register({
 | 
				
			||||||
 | 
					      project: 'e2e'
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					    return new Promise(function(resolve){
 | 
				
			||||||
 | 
					      reporter.beforeLaunch(resolve);
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  afterLaunch: function(exitCode) {
 | 
				
			||||||
 | 
					    return new Promise(function(resolve){
 | 
				
			||||||
 | 
					      reporter.afterLaunch(resolve.bind(this, exitCode));
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  onPrepare: function() {
 | 
				
			||||||
 | 
					    jasmine.getEnv().addReporter(reporter);
 | 
				
			||||||
 | 
					    jasmine.getEnv().addReporter(new SpecReporter());
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,32 @@
 | 
				
			||||||
 | 
					// Protractor configuration file, see link for more information
 | 
				
			||||||
 | 
					// https://github.com/angular/protractor/blob/master/lib/config.ts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*global jasmine */
 | 
				
			||||||
 | 
					var SpecReporter = require('jasmine-spec-reporter');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					exports.config = {
 | 
				
			||||||
 | 
					  allScriptsTimeout: 11000,
 | 
				
			||||||
 | 
					  specs: [
 | 
				
			||||||
 | 
					    './e2e/**/*.e2e-spec.ts'
 | 
				
			||||||
 | 
					  ],
 | 
				
			||||||
 | 
					  capabilities: {
 | 
				
			||||||
 | 
					    'browserName': 'chrome'
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  directConnect: true,
 | 
				
			||||||
 | 
					  baseUrl: 'http://localhost:4200/',
 | 
				
			||||||
 | 
					  framework: 'jasmine',
 | 
				
			||||||
 | 
					  jasmineNodeOpts: {
 | 
				
			||||||
 | 
					    showColors: true,
 | 
				
			||||||
 | 
					    defaultTimeoutInterval: 30000,
 | 
				
			||||||
 | 
					    print: function() {}
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  useAllAngular2AppRoots: true,
 | 
				
			||||||
 | 
					  beforeLaunch: function() {
 | 
				
			||||||
 | 
					    require('ts-node').register({
 | 
				
			||||||
 | 
					      project: 'e2e'
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  onPrepare: function() {
 | 
				
			||||||
 | 
					    jasmine.getEnv().addReporter(new SpecReporter());
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,11 @@
 | 
				
			||||||
 | 
					import {getDOM} from '@angular/platform-browser/src/dom/dom_adapter';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export function dispatchEvent(element: any, eventType: any) {
 | 
				
			||||||
 | 
					  getDOM().dispatchEvent(element, getDOM().createEvent(eventType));
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export function setInputValue(input: any, value: any) {
 | 
				
			||||||
 | 
					  input.value = value;
 | 
				
			||||||
 | 
					  dispatchEvent(input, 'input');
 | 
				
			||||||
 | 
					  dispatchEvent(input, 'blur');
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,34 @@
 | 
				
			||||||
 | 
					import './polyfills.ts';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import 'zone.js/dist/long-stack-trace-zone';
 | 
				
			||||||
 | 
					import 'zone.js/dist/proxy.js';
 | 
				
			||||||
 | 
					import 'zone.js/dist/sync-test';
 | 
				
			||||||
 | 
					import 'zone.js/dist/jasmine-patch';
 | 
				
			||||||
 | 
					import 'zone.js/dist/async-test';
 | 
				
			||||||
 | 
					import 'zone.js/dist/fake-async-test';
 | 
				
			||||||
 | 
					import { getTestBed } from '@angular/core/testing';
 | 
				
			||||||
 | 
					import {
 | 
				
			||||||
 | 
					  BrowserDynamicTestingModule,
 | 
				
			||||||
 | 
					  platformBrowserDynamicTesting
 | 
				
			||||||
 | 
					} from '@angular/platform-browser-dynamic/testing';
 | 
				
			||||||
 | 
					import 'rxjs/Rx';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Unfortunately there's no typing for the `__karma__` variable. Just declare it as any.
 | 
				
			||||||
 | 
					declare var __karma__: any;
 | 
				
			||||||
 | 
					declare var require: any;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Prevent Karma from running prematurely.
 | 
				
			||||||
 | 
					__karma__.loaded = function () {};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// First, initialize the Angular testing environment.
 | 
				
			||||||
 | 
					getTestBed().initTestEnvironment(
 | 
				
			||||||
 | 
					  BrowserDynamicTestingModule,
 | 
				
			||||||
 | 
					  platformBrowserDynamicTesting()
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					// Then we find all the tests.
 | 
				
			||||||
 | 
					const context = require.context('./', true, /\.spec\.ts$/);
 | 
				
			||||||
 | 
					// And load the modules.
 | 
				
			||||||
 | 
					context.keys().map(context);
 | 
				
			||||||
 | 
					// Finally, start Karma to run the tests.
 | 
				
			||||||
 | 
					__karma__.start();
 | 
				
			||||||
		Loading…
	
		Reference in New Issue