mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-08-27 21:15:40 +02:00
92 lines
1.5 KiB
JavaScript
92 lines
1.5 KiB
JavaScript
(function(){
|
|
|
|
var depth;
|
|
|
|
beforeEach(function(){
|
|
depth = 1;
|
|
});
|
|
|
|
afterEach(function(){
|
|
expect(depth).toEqual(1);
|
|
});
|
|
|
|
describe('describe', function(){
|
|
beforeEach(function(){
|
|
depth++;
|
|
});
|
|
|
|
afterEach(function(){
|
|
depth--;
|
|
});
|
|
|
|
it('should map it', function(){
|
|
expect(depth).toEqual(2);
|
|
});
|
|
|
|
describe('nested', function(){
|
|
beforeEach(function(){
|
|
depth++;
|
|
});
|
|
|
|
afterEach(function(){
|
|
depth--;
|
|
});
|
|
|
|
it('should exectue nested', function(){
|
|
expect(depth).toEqual(3);
|
|
});
|
|
});
|
|
});
|
|
|
|
describe("matchers", function(){
|
|
|
|
beforeEach(function(){
|
|
this.addMatchers({
|
|
toBePersonNamed: function(name){
|
|
return this.actual == name;
|
|
}
|
|
});
|
|
});
|
|
|
|
it('should work across multiple tests', function(){
|
|
expect('misko').toBePersonNamed('misko');
|
|
});
|
|
|
|
it('should allow a creation of new matcher', function(){
|
|
this.addMatchers({
|
|
toBeMe: function(){
|
|
return this.actual == 'misko';
|
|
}
|
|
});
|
|
this.addMatchers({
|
|
toBeMe2: function(arg){
|
|
return this.actual == arg;
|
|
}
|
|
});
|
|
expect('misko').toBeMe();
|
|
expect('misko').toBeMe2('misko');
|
|
expect('adam').toBePersonNamed('adam');
|
|
});
|
|
});
|
|
|
|
describe('runs', function(){
|
|
it('should execute a runs block', function(){
|
|
runs(function(){
|
|
this.runsFunction = function(){
|
|
return true;
|
|
};
|
|
spyOn(this, 'runsFunction');
|
|
});
|
|
|
|
runs(function(){
|
|
this.runsFunction();
|
|
});
|
|
|
|
runs(function(){
|
|
expect(this.runsFunction).wasCalled();
|
|
});
|
|
});
|
|
});
|
|
|
|
})();
|