refactor (test/facade): Ts'ify test/facade

Translate AtScript in test/facade to TypeScript
This commit is contained in:
Ian Riley 2015-05-26 17:00:31 -07:00 committed by Victor Berchet
parent f83f1ee0ce
commit 8609543ad0
6 changed files with 220 additions and 233 deletions

View File

@ -1,61 +0,0 @@
import {describe, it, expect, beforeEach, ddescribe, iit, xit, el,
SpyObject, AsyncTestCompleter, inject, IS_DARTIUM} from 'angular2/test_lib';
import {ObservableWrapper, EventEmitter, PromiseWrapper} from 'angular2/src/facade/async';
export function main() {
describe('EventEmitter', () => {
var emitter:EventEmitter;
beforeEach(() => {
emitter = new EventEmitter();
});
it("should call the next callback", inject([AsyncTestCompleter], (async) => {
ObservableWrapper.subscribe(emitter, (value) => {
expect(value).toEqual(99);
async.done();
});
ObservableWrapper.callNext(emitter, 99);
}));
it("should call the throw callback", inject([AsyncTestCompleter], (async) => {
ObservableWrapper.subscribe(emitter, (_) => {}, (error) => {
expect(error).toEqual("Boom");
async.done();
});
ObservableWrapper.callThrow(emitter, "Boom");
}));
it("should work when no throw callback is provided", inject([AsyncTestCompleter], (async) => {
ObservableWrapper.subscribe(emitter, (_) => {}, (_) => {
async.done();
});
ObservableWrapper.callThrow(emitter, "Boom");
}));
it("should call the return callback", inject([AsyncTestCompleter], (async) => {
ObservableWrapper.subscribe(emitter, (_) => {}, (_) => {}, () => {
async.done();
});
ObservableWrapper.callReturn(emitter);
}));
it("should subscribe to the wrapper asynchronously", () => {
var called = false;
ObservableWrapper.subscribe(emitter, (value) => {
called = true;
});
ObservableWrapper.callNext(emitter, 99);
expect(called).toBe(false);
});
//TODO: vsavkin: add tests cases
//should call dispose on the subscription if generator returns {done:true}
//should call dispose on the subscription on throw
//should call dispose on the subscription on return
});
}

View File

@ -0,0 +1,65 @@
import {
describe,
it,
expect,
beforeEach,
ddescribe,
iit,
xit,
el,
SpyObject,
AsyncTestCompleter,
inject,
IS_DARTIUM
} from 'angular2/test_lib';
import {ObservableWrapper, EventEmitter, PromiseWrapper} from 'angular2/src/facade/async';
export function main() {
describe('EventEmitter', () => {
var emitter: EventEmitter;
beforeEach(() => { emitter = new EventEmitter(); });
it("should call the next callback", inject([AsyncTestCompleter], (async) => {
ObservableWrapper.subscribe(emitter, (value) => {
expect(value).toEqual(99);
async.done();
});
ObservableWrapper.callNext(emitter, 99);
}));
it("should call the throw callback", inject([AsyncTestCompleter], (async) => {
ObservableWrapper.subscribe(emitter, (_) => {}, (error) => {
expect(error).toEqual("Boom");
async.done();
});
ObservableWrapper.callThrow(emitter, "Boom");
}));
it("should work when no throw callback is provided", inject([AsyncTestCompleter], (async) => {
ObservableWrapper.subscribe(emitter, (_) => {}, (_) => { async.done(); });
ObservableWrapper.callThrow(emitter, "Boom");
}));
it("should call the return callback", inject([AsyncTestCompleter], (async) => {
ObservableWrapper.subscribe(emitter, (_) => {}, (_) => {}, () => { async.done(); });
ObservableWrapper.callReturn(emitter);
}));
it("should subscribe to the wrapper asynchronously", () => {
var called = false;
ObservableWrapper.subscribe(emitter, (value) => { called = true; });
ObservableWrapper.callNext(emitter, 99);
expect(called).toBe(false);
});
// TODO: vsavkin: add tests cases
// should call dispose on the subscription if generator returns {done:true}
// should call dispose on the subscription on throw
// should call dispose on the subscription on return
});
}

View File

@ -1,112 +0,0 @@
import {describe, it, expect, beforeEach, ddescribe, iit, xit}
from 'angular2/test_lib';
import {List, ListWrapper, StringMap, StringMapWrapper} from 'angular2/src/facade/collection';
export function main() {
describe('ListWrapper', () => {
var l: List;
describe('splice', () => {
it('should remove sublist of given length and return it', () => {
var list = [1, 2, 3, 4, 5, 6];
expect(ListWrapper.splice(list, 1, 3)).toEqual([2, 3, 4]);
expect(list).toEqual([1, 5, 6]);
});
it('should support negative start', () => {
var list = [1, 2, 3, 4, 5, 6];
expect(ListWrapper.splice(list, -5, 3)).toEqual([2, 3, 4]);
expect(list).toEqual([1, 5, 6]);
});
});
describe('fill', () => {
beforeEach(() => {
l = [1, 2, 3, 4];
});
it('should fill the whole list if neither start nor end are specified', () => {
ListWrapper.fill(l, 9);
expect(l).toEqual([9, 9, 9, 9]);
});
it('should fill up to the end if end is not specified', () => {
ListWrapper.fill(l, 9, 1);
expect(l).toEqual([1, 9, 9, 9]);
});
it('should support negative start', () => {
ListWrapper.fill(l, 9, -1);
expect(l).toEqual([1, 2, 3, 9]);
});
it('should support negative end', () => {
ListWrapper.fill(l, 9, -2, -1);
expect(l).toEqual([1, 2, 9, 4]);
});
});
describe('slice', () => {
beforeEach(() => {
l = [1, 2, 3, 4];
});
it('should return the whole list if neither start nor end are specified', () => {
expect(ListWrapper.slice(l)).toEqual([1, 2, 3, 4]);
});
it('should return up to the end if end is not specified', () => {
expect(ListWrapper.slice(l, 1)).toEqual([2, 3, 4]);
});
it('should support negative start', () => {
expect(ListWrapper.slice(l, -1)).toEqual([4]);
});
it('should support negative end', () => {
expect(ListWrapper.slice(l, -3, -1)).toEqual([2, 3]);
});
});
});
describe('StringMapWrapper', () => {
describe('equals', () => {
it('should return true when comparing empty maps', () => {
expect(StringMapWrapper.equals({}, {})).toBe(true);
});
it('should return true when comparing the same map', () => {
var m1 = {'a': 1, 'b': 2, 'c': 3};
expect(StringMapWrapper.equals(m1, m1)).toBe(true);
});
it('should return true when comparing different maps with the same keys and values', () => {
var m1 = {'a': 1, 'b': 2, 'c': 3};
var m2 = {'a': 1, 'b': 2, 'c': 3};
expect(StringMapWrapper.equals(m1, m2)).toBe(true);
});
it('should return false when comparing maps with different numbers of keys', () => {
var m1 = {'a': 1, 'b': 2, 'c': 3};
var m2 = {'a': 1, 'b': 2, 'c': 3, 'd': 4};
expect(StringMapWrapper.equals(m1, m2)).toBe(false);
expect(StringMapWrapper.equals(m2, m1)).toBe(false);
});
it('should return false when comparing maps with different keys', () => {
var m1 = {'a': 1, 'b': 2, 'c': 3};
var m2 = {'a': 1, 'b': 2, 'CC': 3};
expect(StringMapWrapper.equals(m1, m2)).toBe(false);
expect(StringMapWrapper.equals(m2, m1)).toBe(false);
});
it('should return false when comparing maps with different values', () => {
var m1 = {'a': 1, 'b': 2, 'c': 3};
var m2 = {'a': 1, 'b': 20, 'c': 3};
expect(StringMapWrapper.equals(m1, m2)).toBe(false);
expect(StringMapWrapper.equals(m2, m1)).toBe(false);
});
});
});
}

View File

@ -0,0 +1,101 @@
import {describe, it, expect, beforeEach, ddescribe, iit, xit} from 'angular2/test_lib';
import {List, ListWrapper, StringMap, StringMapWrapper} from 'angular2/src/facade/collection';
export function main() {
describe('ListWrapper', () => {
var l: List<int>;
describe('splice', () => {
it('should remove sublist of given length and return it', () => {
var list = [1, 2, 3, 4, 5, 6];
expect(ListWrapper.splice(list, 1, 3)).toEqual([2, 3, 4]);
expect(list).toEqual([1, 5, 6]);
});
it('should support negative start', () => {
var list = [1, 2, 3, 4, 5, 6];
expect(ListWrapper.splice(list, -5, 3)).toEqual([2, 3, 4]);
expect(list).toEqual([1, 5, 6]);
});
});
describe('fill', () => {
beforeEach(() => { l = [1, 2, 3, 4]; });
it('should fill the whole list if neither start nor end are specified', () => {
ListWrapper.fill(l, 9);
expect(l).toEqual([9, 9, 9, 9]);
});
it('should fill up to the end if end is not specified', () => {
ListWrapper.fill(l, 9, 1);
expect(l).toEqual([1, 9, 9, 9]);
});
it('should support negative start', () => {
ListWrapper.fill(l, 9, -1);
expect(l).toEqual([1, 2, 3, 9]);
});
it('should support negative end', () => {
ListWrapper.fill(l, 9, -2, -1);
expect(l).toEqual([1, 2, 9, 4]);
});
});
describe('slice', () => {
beforeEach(() => { l = [1, 2, 3, 4]; });
it('should return the whole list if neither start nor end are specified',
() => { expect(ListWrapper.slice(l)).toEqual([1, 2, 3, 4]); });
it('should return up to the end if end is not specified',
() => { expect(ListWrapper.slice(l, 1)).toEqual([2, 3, 4]); });
it('should support negative start', () => { expect(ListWrapper.slice(l, -1)).toEqual([4]); });
it('should support negative end',
() => { expect(ListWrapper.slice(l, -3, -1)).toEqual([2, 3]); });
});
});
describe('StringMapWrapper', () => {
describe('equals', () => {
it('should return true when comparing empty maps',
() => { expect(StringMapWrapper.equals({}, {})).toBe(true); });
it('should return true when comparing the same map', () => {
var m1 = {'a': 1, 'b': 2, 'c': 3};
expect(StringMapWrapper.equals(m1, m1)).toBe(true);
});
it('should return true when comparing different maps with the same keys and values', () => {
var m1 = {'a': 1, 'b': 2, 'c': 3};
var m2 = {'a': 1, 'b': 2, 'c': 3};
expect(StringMapWrapper.equals(m1, m2)).toBe(true);
});
it('should return false when comparing maps with different numbers of keys', () => {
var m1 = {'a': 1, 'b': 2, 'c': 3};
var m2 = {'a': 1, 'b': 2, 'c': 3, 'd': 4};
expect(StringMapWrapper.equals(m1, m2)).toBe(false);
expect(StringMapWrapper.equals(m2, m1)).toBe(false);
});
it('should return false when comparing maps with different keys', () => {
var m1 = {'a': 1, 'b': 2, 'c': 3};
var m2 = {'a': 1, 'b': 2, 'CC': 3};
expect(StringMapWrapper.equals(m1, m2)).toBe(false);
expect(StringMapWrapper.equals(m2, m1)).toBe(false);
});
it('should return false when comparing maps with different values', () => {
var m1 = {'a': 1, 'b': 2, 'c': 3};
var m2 = {'a': 1, 'b': 20, 'c': 3};
expect(StringMapWrapper.equals(m1, m2)).toBe(false);
expect(StringMapWrapper.equals(m2, m1)).toBe(false);
});
});
});
}

View File

@ -1,60 +0,0 @@
import {describe, it, expect, beforeEach, ddescribe, iit, xit, el} from 'angular2/test_lib';
import {ListWrapper} from 'angular2/src/facade/collection';
import {isPresent, RegExpWrapper, RegExpMatcherWrapper, StringWrapper, CONST_EXPR} from 'angular2/src/facade/lang';
export function main() {
describe('RegExp', () => {
it('should expose the index for each match', () => {
var re = RegExpWrapper.create('(!)');
var matcher = RegExpWrapper.matcher(re, '0!23!567!!');
var indexes = [];
var m;
while (isPresent(m = RegExpMatcherWrapper.next(matcher))) {
ListWrapper.push(indexes, m.index);
expect(m[0]).toEqual('!');
expect(m[1]).toEqual('!');
expect(m.length).toBe(2);
}
expect(indexes).toEqual([1, 4, 8, 9]);
});
it('should whether the regular expression has a match in the string', () => {
var barRe = RegExpWrapper.create('bar');
expect(RegExpWrapper.test(barRe, 'bar')).toEqual(true);
expect(RegExpWrapper.test(barRe, 'foo')).toEqual(false);
});
});
describe('const', () => {
it('should support const expressions both in TS and Dart', () => {
const numbers = CONST_EXPR([1, 2, 3]);
expect(numbers).toEqual([1, 2, 3]);
})
});
describe('String', () => {
var upper, lower;
beforeEach(() => {
upper = 'SOMETHING'
lower = 'something';
});
it('should upper case a string', () => {
var str = StringWrapper.toUpperCase(lower);
expect(str).toEqual(upper);
});
it('should lower case a string', () => {
var str = StringWrapper.toLowerCase(upper);
expect(str).toEqual(lower);
});
});
}

View File

@ -0,0 +1,54 @@
import {describe, it, expect, beforeEach, ddescribe, iit, xit, el} from 'angular2/test_lib';
import {ListWrapper} from 'angular2/src/facade/collection';
import {
isPresent,
RegExpWrapper,
RegExpMatcherWrapper,
StringWrapper,
CONST_EXPR
} from 'angular2/src/facade/lang';
export function main() {
describe('RegExp', () => {it('should expose the index for each match', () => {
var re = RegExpWrapper.create('(!)');
var matcher = RegExpWrapper.matcher(re, '0!23!567!!');
var indexes = [];
var m;
while (isPresent(m = RegExpMatcherWrapper.next(matcher))) {
ListWrapper.push(indexes, m.index);
expect(m[0]).toEqual('!');
expect(m[1]).toEqual('!');
expect(m.length).toBe(2);
}
expect(indexes).toEqual([1, 4, 8, 9]);
})});
describe('const', () => {it('should support const expressions both in TS and Dart', () => {
const numbers = CONST_EXPR([1, 2, 3]);
expect(numbers).toEqual([1, 2, 3]);
})});
describe('String', () => {
var upper, lower;
beforeEach(() => {
upper = 'SOMETHING';
lower = 'something';
});
it('should upper case a string', () => {
var str = StringWrapper.toUpperCase(lower);
expect(str).toEqual(upper);
});
it('should lower case a string', () => {
var str = StringWrapper.toLowerCase(upper);
expect(str).toEqual(lower);
});
});
}