Skip to content

Commit

Permalink
Merge 2744cb9 into 4adb292
Browse files Browse the repository at this point in the history
  • Loading branch information
dompuiu committed Oct 31, 2018
2 parents 4adb292 + 2744cb9 commit 5b30157
Show file tree
Hide file tree
Showing 2 changed files with 54 additions and 2 deletions.
44 changes: 42 additions & 2 deletions src/__tests__/initRules.test.js
Expand Up @@ -135,7 +135,7 @@ describe('initRules', function() {

moduleProvider = createModuleProvider();

logger = jasmine.createSpyObj('logger', ['log', 'error']);
logger = jasmine.createSpyObj('logger', ['log', 'warn', 'error']);

initRules = injectInitRules({
'./logger': logger,
Expand Down Expand Up @@ -936,7 +936,7 @@ describe('initRules', function() {

describe('when queue local storage flag is set', function() {
beforeEach(function() {
logger = jasmine.createSpyObj('logger', ['log', 'error']);
logger = jasmine.createSpyObj('logger', ['log', 'warn', 'error']);

initRules = injectInitRules({
'./logger': logger,
Expand Down Expand Up @@ -1839,6 +1839,46 @@ describe('initRules', function() {

expect(actionExport.calls.count()).toBe(0);
});

it('logs a warning message', function() {
var rules = setupRules([
{
actions: [generateAction('Action1')]
}
]);

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

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.'
);
});

it('logs the warning message only once', function() {
var rules = setupRules([
{
actions: [generateAction('Action1'), generateAction('Action2')]
}
]);

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

expect(logger.warn.calls.all().length).toBe(1);
});
});

describe('error handling and logging', function() {
Expand Down
12 changes: 12 additions & 0 deletions src/initRules.js
Expand Up @@ -19,6 +19,17 @@ var isRuleQueueActive = require('./isRuleQueueActive');
var Promise = require('@adobe/reactor-promise');
var PROMISE_TIMEOUT = 2000;

var queueWarningLogged = false;
var logQueueWarningOnce = function() {
if (!queueWarningLogged) {
queueWarningLogged = true;
logger.warn(
'Rule queueing is only intended for testing purposes. Queueing behavior may be ' +
'changed or removed at any time.'
);
}
};

module.exports = function(
_satellite,
rules,
Expand Down Expand Up @@ -278,6 +289,7 @@ module.exports = function(
);

if (isRuleQueueActive()) {
logQueueWarningOnce();
addRuleToQueue(rule, normalizedSyntethicEvent);
} else {
checkConditions(rule, normalizedSyntethicEvent);
Expand Down

0 comments on commit 5b30157

Please sign in to comment.