Skip to content

Commit

Permalink
Merge 72ca4ba into cc97ef4
Browse files Browse the repository at this point in the history
  • Loading branch information
dompuiu committed Nov 7, 2018
2 parents cc97ef4 + 72ca4ba commit ce8c4ed
Show file tree
Hide file tree
Showing 4 changed files with 68 additions and 62 deletions.
6 changes: 3 additions & 3 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
"eslint": "^5.7.0",
"inject-loader": "^4.0.1",
"istanbul-instrumenter-loader": "^3.0.1",
"jasmine-core": "^3.2.1",
"jasmine-core": "^3.3.0",
"karma": "^3.0.1",
"karma-chrome-launcher": "^2.2.0",
"karma-coverage": "^1.1.2",
Expand Down
112 changes: 59 additions & 53 deletions src/__tests__/initRules.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -122,9 +122,13 @@ var initRules;
var notifyMonitors;
var logger;
var event;
var windowSetTimeout;

describe('initRules', function() {
beforeEach(function() {
// Sometimes when calling setTimeout in IE, you will get `"Invalid calling object" error`.
// Read more here: https://github.com/vuejs/vue/issues/4465
windowSetTimeout = window.setTimeout.bind(window);
jasmine.clock().install();

getShouldExecuteActions = function() {
Expand Down Expand Up @@ -615,64 +619,58 @@ describe('initRules', function() {
expect(actionExport.calls.count()).toBe(0);
});

it('queues trigger calls that occur before all event ' +
'modules have been initialized', function() {
var rules = setupRules([
{
events: [
generateEvent(
'Event1',
function(module) {
it(
'queues trigger calls that occur before all event ' +
'modules have been initialized',
function() {
var rules = setupRules([
{
events: [
generateEvent('Event1', function(module) {
module.exports = function(settings, trigger) {
trigger({
foo: 'bar'
});
};
}
)
],
actions: [
generateAction(
'Action1',
function(module) {
})
],
actions: [
generateAction('Action1', function(module) {
module.exports = jasmine.createSpy();
}
)
]
},
{
events: [
generateEvent(
'Event2',
function(module) {
})
]
},
{
events: [
generateEvent('Event2', function(module) {
module.exports = jasmine.createSpy();
}
)
]
}
]);
})
]
}
]);

initRules(
_satellite,
rules,
moduleProvider,
replaceTokens,
getShouldExecuteActions
);
initRules(
_satellite,
rules,
moduleProvider,
replaceTokens,
getShouldExecuteActions
);

var action1Export = moduleProvider.getModuleExports(
moduleHelper.getPath('Action1')
);
var action1Export = moduleProvider.getModuleExports(
moduleHelper.getPath('Action1')
);

var event2Export = moduleProvider.getModuleExports(
moduleHelper.getPath('Event2')
);
var event2Export = moduleProvider.getModuleExports(
moduleHelper.getPath('Event2')
);

expect(event2Export).toHaveBeenCalledBefore(action1Export);
// Make sure additional event detail makes it down to the action
// when trigger calls are queued.
expect(action1Export.calls.first().args[1].foo).toEqual('bar');
});
expect(event2Export).toHaveBeenCalledBefore(action1Export);
// Make sure additional event detail makes it down to the action
// when trigger calls are queued.
expect(action1Export.calls.first().args[1].foo).toEqual('bar');
}
);
});

describe('error handling and logging', function() {
Expand Down Expand Up @@ -1638,7 +1636,9 @@ describe('initRules', function() {
module.exports = jasmine.createSpy().and.callFake(function() {
return new Promise(function(resolve) {
setTimeout(resolve, 3000);
jasmine.clock().tick(2000);
windowSetTimeout(function() {
jasmine.clock().tick(2000);
}, 0);
});
});
})
Expand Down Expand Up @@ -1709,11 +1709,12 @@ describe('initRules', function() {
module.exports = jasmine.createSpy().and.callFake(function() {
return new Promise(function(resolve) {
setTimeout(function() {
callOrder.push('Action1');
resolve();
}, 3000);

jasmine.clock().tick(2000);
windowSetTimeout(function() {
jasmine.clock().tick(2000);
}, 0);
});
});
}),
Expand Down Expand Up @@ -1917,7 +1918,7 @@ describe('initRules', function() {
var warningMessage = logger.warn.calls.mostRecent().args[0];
expect(warningMessage).toBe(
'Rule queueing is only intended for testing purposes. Queueing behavior may be ' +
'changed or removed at any time.'
'changed or removed at any time.'
);
});

Expand Down Expand Up @@ -2519,7 +2520,9 @@ describe('initRules', function() {
module.exports = function() {
return new Promise(function(resolve) {
setTimeout(resolve, 3000);
jasmine.clock().tick(2000);
windowSetTimeout(function() {
jasmine.clock().tick(2000);
}, 0);
});
};
})
Expand Down Expand Up @@ -2562,14 +2565,17 @@ describe('initRules', function() {
module.exports = function() {
return new Promise(function(resolve) {
setTimeout(resolve, 3000);
jasmine.clock().tick(2000);
windowSetTimeout(function() {
jasmine.clock().tick(2000);
}, 0);
});
};
})
]
}
]);


var lastPromiseInQueue = initRules(
_satellite,
rules,
Expand Down
10 changes: 5 additions & 5 deletions src/initRules.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ var logQueueWarningOnce = function() {
queueWarningLogged = true;
logger.warn(
'Rule queueing is only intended for testing purposes. Queueing behavior may be ' +
'changed or removed at any time.'
'changed or removed at any time.'
);
}
};
Expand Down Expand Up @@ -149,9 +149,9 @@ module.exports = function(
);
}, PROMISE_TIMEOUT);

resolve(
Promise.resolve(
executeDelegateModule(condition, syntheticEvent, [syntheticEvent])
);
).then(resolve, reject);
})
.catch(function(e) {
clearTimeout(timeoutId);
Expand Down Expand Up @@ -184,9 +184,9 @@ module.exports = function(
);
}, PROMISE_TIMEOUT);

resolve(
Promise.resolve(
executeDelegateModule(action, syntheticEvent, [syntheticEvent])
);
).then(resolve, reject);
})
.then(function() {
clearTimeout(timeoutId);
Expand Down

0 comments on commit ce8c4ed

Please sign in to comment.