Added logic to chek for changes in org variable in msg object

This commit is contained in:
Steve Walsh
2021-07-07 15:37:59 +01:00
parent d49ad87f5e
commit 1cf81d77aa
13 changed files with 3544 additions and 2349 deletions

View File

@@ -0,0 +1,25 @@
module.exports = (org) => ({
logger: {
metadata: {
organization: org
}
},
payload: {
system: {
organization: org,
region: 'eu-test-1',
conversationId: 'convo-id',
bot: 'my-bot'
},
},
event: {
event: {
organization: org,
token: {
contents: {
organization: org
}
}
}
}
});

View File

@@ -0,0 +1,74 @@
const StopTheBleed = require('../../nodes/StopTheBleed')
const orgEvent = require('./fixtures/data/orgEvent')
const sinon = require('sinon');
const assert = require('assert');
describe.only('Unit: StopTheBleed', () => {
it('Should not log when no changes', () => {
const beforeEvent = orgEvent('before');
const stopTheBleed = new StopTheBleed(beforeEvent);
stopTheBleed.verify(beforeEvent);
});
it('Should warn when org is overwritten', () => {
const beforeEvent = orgEvent('before');
errorLogStub = sinon.stub();
appLogStub = sinon.stub();
beforeEvent.logger.error = errorLogStub;
beforeEvent.logger.app = {
platform:{
organization: appLogStub
}
};
const stopTheBleed = new StopTheBleed(beforeEvent);
const modifiedEvent = orgEvent('after');
stopTheBleed.verify(modifiedEvent);
assert(errorLogStub.callCount === 4)
assert(appLogStub.callCount === 4)
const [[log1], [log2], [log3], [log4]] = appLogStub.args
assert(log1.details.message.includes('logger.metadata.organization'))
assert(log2.details.message.includes('payload.system.organization'))
assert(log3.details.message.includes('event.event.organization'))
assert(log4.details.message.includes('event.event.token.contents.organization'))
});
it('Should warn when org is deleted', () => {
const beforeEvent = orgEvent('before');
errorLogStub = sinon.stub();
appLogStub = sinon.stub();
beforeEvent.logger.error = errorLogStub;
beforeEvent.logger.app = {
platform:{
organization: appLogStub
}
};
const stopTheBleed = new StopTheBleed(beforeEvent);
delete beforeEvent.logger.metadata.organization;
delete beforeEvent.payload.system.organization;
delete beforeEvent.event.event.organization;
delete beforeEvent.event.event.token.contents.organization;
stopTheBleed.verify(beforeEvent);
assert(errorLogStub.callCount === 4)
assert(appLogStub.callCount === 4)
const [[log1], [log2], [log3], [log4]] = appLogStub.args
assert(log1.details.message.includes('logger.metadata.organization'))
assert(log2.details.message.includes('payload.system.organization'))
assert(log3.details.message.includes('event.event.organization'))
assert(log4.details.message.includes('event.event.token.contents.organization'))
});
it('Should not die when error', () => {
const beforeEvent = orgEvent('before');
const stopTheBleed = new StopTheBleed(beforeEvent);
const modifiedEvent = orgEvent('after');
stopTheBleed.verify(modifiedEvent);
});
});