test(matchers): add support for toHaveClass in tests
This commit is contained in:
parent
574bbea747
commit
24eabb9bb1
|
@ -100,6 +100,7 @@ class Expect extends gns.Expect {
|
||||||
void toThrowError([message = ""]) => toThrowWith(message: message);
|
void toThrowError([message = ""]) => toThrowWith(message: message);
|
||||||
void toThrowErrorWith(message) => expectException(this.actual, message);
|
void toThrowErrorWith(message) => expectException(this.actual, message);
|
||||||
void toBePromise() => gns.guinness.matchers.toBeTrue(actual is Future);
|
void toBePromise() => gns.guinness.matchers.toBeTrue(actual is Future);
|
||||||
|
void toHaveCssClass(className) => gns.guinness.matchers.toBeTrue(DOM.hasClass(actual, className));
|
||||||
void toImplement(expected) => toBeA(expected);
|
void toImplement(expected) => toBeA(expected);
|
||||||
void toBeNaN() =>
|
void toBeNaN() =>
|
||||||
gns.guinness.matchers.toBeTrue(double.NAN.compareTo(actual) == 0);
|
gns.guinness.matchers.toBeTrue(double.NAN.compareTo(actual) == 0);
|
||||||
|
@ -138,6 +139,7 @@ class NotExpect extends gns.NotExpect {
|
||||||
|
|
||||||
void toEqual(expected) => toHaveSameProps(expected);
|
void toEqual(expected) => toHaveSameProps(expected);
|
||||||
void toBePromise() => gns.guinness.matchers.toBeFalse(actual is Future);
|
void toBePromise() => gns.guinness.matchers.toBeFalse(actual is Future);
|
||||||
|
void toHaveCssClass(className) => gns.guinness.matchers.toBeFalse(DOM.hasClass(actual, className));
|
||||||
void toBeNull() => gns.guinness.matchers.toBeFalse(actual == null);
|
void toBeNull() => gns.guinness.matchers.toBeFalse(actual == null);
|
||||||
Function get _expect => gns.guinness.matchers.expect;
|
Function get _expect => gns.guinness.matchers.expect;
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,6 +24,7 @@ export interface NgMatchers extends jasmine.Matchers {
|
||||||
toBePromise(): boolean;
|
toBePromise(): boolean;
|
||||||
toBeAnInstanceOf(expected: any): boolean;
|
toBeAnInstanceOf(expected: any): boolean;
|
||||||
toHaveText(expected: any): boolean;
|
toHaveText(expected: any): boolean;
|
||||||
|
toHaveCssClass(expected: any): boolean;
|
||||||
toImplement(expected: any): boolean;
|
toImplement(expected: any): boolean;
|
||||||
toContainError(expected: any): boolean;
|
toContainError(expected: any): boolean;
|
||||||
toThrowErrorWith(expectedMessage: any): boolean;
|
toThrowErrorWith(expectedMessage: any): boolean;
|
||||||
|
@ -244,6 +245,21 @@ _global.beforeEach(function() {
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
|
toHaveCssClass: function() {
|
||||||
|
return {compare: buildError(false), negativeCompare: buildError(true)};
|
||||||
|
|
||||||
|
function buildError(isNot) {
|
||||||
|
return function(actual, className) {
|
||||||
|
return {
|
||||||
|
pass: DOM.hasClass(actual, className) == !isNot,
|
||||||
|
get message() {
|
||||||
|
return `Expected ${actual.outerHTML} ${isNot ? 'not ' : ''}to contain the CSS class "${className}"`;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
toContainError: function() {
|
toContainError: function() {
|
||||||
return {
|
return {
|
||||||
compare: function(actual, expectedText) {
|
compare: function(actual, expectedText) {
|
||||||
|
|
|
@ -11,6 +11,7 @@ import {
|
||||||
containsRegexp
|
containsRegexp
|
||||||
} from 'angular2/test_lib';
|
} from 'angular2/test_lib';
|
||||||
|
|
||||||
|
import {DOM} from 'angular2/src/dom/dom_adapter';
|
||||||
import {MapWrapper} from 'angular2/src/facade/collection';
|
import {MapWrapper} from 'angular2/src/facade/collection';
|
||||||
import {IMPLEMENTS, RegExpWrapper} from 'angular2/src/facade/lang';
|
import {IMPLEMENTS, RegExpWrapper} from 'angular2/src/facade/lang';
|
||||||
|
|
||||||
|
@ -42,6 +43,20 @@ export function main() {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe("toHaveCssClass", () => {
|
||||||
|
it("should assert that the CSS class is present", () => {
|
||||||
|
var el = DOM.createElement('div');
|
||||||
|
DOM.addClass(el, 'matias');
|
||||||
|
expect(el).toHaveCssClass('matias');
|
||||||
|
});
|
||||||
|
|
||||||
|
it("should assert that the CSS class is not present", () => {
|
||||||
|
var el = DOM.createElement('div');
|
||||||
|
DOM.addClass(el, 'matias');
|
||||||
|
expect(el).not.toHaveCssClass('fatias');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
describe('toEqual for Maps', () => {
|
describe('toEqual for Maps', () => {
|
||||||
it('should detect equality for same reference', () => {
|
it('should detect equality for same reference', () => {
|
||||||
var m1 = MapWrapper.createFromStringMap({'a': 1});
|
var m1 = MapWrapper.createFromStringMap({'a': 1});
|
||||||
|
|
Loading…
Reference in New Issue