67 lines
1.9 KiB
JavaScript
67 lines
1.9 KiB
JavaScript
describe('Default Spy Strategy (Integration)', function() {
|
|
let env;
|
|
|
|
beforeEach(function() {
|
|
env = new jasmineUnderTest.Env();
|
|
env.configure({ random: false });
|
|
});
|
|
|
|
afterEach(function() {
|
|
env.cleanup_();
|
|
});
|
|
|
|
it('allows defining a default spy strategy', async function() {
|
|
env.describe('suite with default strategy', function() {
|
|
env.beforeEach(function() {
|
|
env.setDefaultSpyStrategy(function(and) {
|
|
and.returnValue(42);
|
|
});
|
|
});
|
|
|
|
env.it('spec in suite', function() {
|
|
const spy = env.createSpy('something');
|
|
expect(spy()).toBe(42);
|
|
});
|
|
});
|
|
|
|
env.it('spec not in suite', function() {
|
|
const spy = env.createSpy('something');
|
|
expect(spy()).toBeUndefined();
|
|
});
|
|
|
|
const result = await env.execute();
|
|
expect(result.overallStatus).toEqual('passed');
|
|
});
|
|
|
|
it('uses the default spy strategy defined when the spy is created', async function() {
|
|
env.it('spec', function() {
|
|
const a = env.createSpy('a');
|
|
env.setDefaultSpyStrategy(function(and) {
|
|
and.returnValue(42);
|
|
});
|
|
const b = env.createSpy('b');
|
|
env.setDefaultSpyStrategy(function(and) {
|
|
and.stub();
|
|
});
|
|
const c = env.createSpy('c');
|
|
env.setDefaultSpyStrategy();
|
|
const d = env.createSpy('d');
|
|
|
|
expect(a()).toBeUndefined();
|
|
expect(b()).toBe(42);
|
|
expect(c()).toBeUndefined();
|
|
expect(d()).toBeUndefined();
|
|
|
|
// Check our assumptions about which spies are "configured" (this matters because
|
|
// spies that use withArgs() behave differently if they are not configured).
|
|
expect(a.and.isConfigured()).toBe(false);
|
|
expect(b.and.isConfigured()).toBe(true);
|
|
expect(c.and.isConfigured()).toBe(true);
|
|
expect(d.and.isConfigured()).toBe(false);
|
|
});
|
|
|
|
const result = await env.execute();
|
|
expect(result.overallStatus).toEqual('passed');
|
|
});
|
|
});
|