Demo for angular/angular.js#13971
$ npm install --global ava
$ npm install angular angular-mocks ava jsdom
$ ava <filename> --verbose
Demo for angular/angular.js#13971
$ npm install --global ava
$ npm install angular angular-mocks ava jsdom
$ ava <filename> --verbose
// Failing case | |
// Concurrent test runs | |
import test from 'ava'; | |
import jsdom from 'jsdom'; | |
// Angular dependencies | |
global.document = jsdom.jsdom('<!doctype html><html ng-app="app"><head><meta charset="utf-8"></head><body></body></html>'); | |
global.window = document.defaultView; | |
global.Node = global.window.Node; | |
require('angular/angular'); | |
// Make angular available for angular-mocks | |
global.angular = global.window.angular; | |
// Set some window properties required by angular-mocks | |
global.window.mocha = {}; | |
global.window.beforeEach = test.beforeEach; | |
global.window.afterEach = test.afterEach; | |
require('angular-mocks'); | |
angular.module('app', []); | |
test('a', t => t.true(true)); | |
test('b', t => t.true(true)); |
// Working case | |
// Bad workaround - disabling concurrency by running with test.serial() instead of test() | |
import test from 'ava'; | |
import jsdom from 'jsdom'; | |
// Angular dependencies | |
global.document = jsdom.jsdom('<!doctype html><html ng-app="app"><head><meta charset="utf-8"></head><body></body></html>'); | |
global.window = document.defaultView; | |
global.Node = global.window.Node; | |
require('angular/angular'); | |
// Make angular available for angular-mocks | |
global.angular = global.window.angular; | |
// Set some window properties required by angular-mocks | |
global.window.mocha = {}; | |
global.window.beforeEach = test.beforeEach; | |
global.window.afterEach = test.afterEach; | |
require('angular-mocks'); | |
angular.module('app', []); | |
test.serial('a', t => t.true(true)); | |
test.serial('b', t => t.true(true)); |
// Working case | |
// Not so bad workaround - running the (window.afterEach || window.teardown) callback after all tests | |
import test from 'ava'; | |
import jsdom from 'jsdom'; | |
// Angular dependencies | |
global.document = jsdom.jsdom('<!doctype html><html ng-app="app"><head><meta charset="utf-8"></head><body></body></html>'); | |
global.window = document.defaultView; | |
global.Node = global.window.Node; | |
require('angular/angular'); | |
// Make angular available for angular-mocks | |
global.angular = global.window.angular; | |
// Set some window properties required by angular-mocks | |
global.window.mocha = {}; | |
global.window.beforeEach = test.beforeEach; | |
global.window.afterEach = test.after; | |
require('angular-mocks'); | |
angular.module('app', []); | |
test('a', t => t.true(true)); | |
test('b', t => t.true(true)); |