diff --git a/src/common/constants.js b/src/common/constants.js
index e9905ae..9be072b 100644
--- a/src/common/constants.js
+++ b/src/common/constants.js
@@ -189,30 +189,37 @@ module.exports = {
added: {
title: 'A new team member has joined your project',
content: data => `${data.firstName} ${data.lastName} has joined project ${data.projectName}. Welcome ${data.firstName}! Looking forward to working with you.`,
+ disabled: true,
},
managerJoined: {
title: 'A Topcoder project manager has joined your project',
content: data => `${data.firstName} ${data.lastName} has joined your project ${data.projectName} as a project manager.`,
+ disabled: true,
},
copilotJoined: {
title: 'A Topcoder copilot has joined your project',
content: data => `${data.firstName} ${data.lastName} has joined your project ${data.projectName} as a copilot.`,
+ disabled: true,
},
left: {
title: 'A team member has left your project',
content: data => `${data.firstName} ${data.lastName} has left project ${data.projectName}. Thanks for all your work ${data.firstName}.`,
+ disabled: true,
},
removed: {
title: 'A team member has left your project',
content: data => `${data.firstName} ${data.lastName} has left project ${data.projectName}. Thanks for all your work ${data.firstName}.`,
+ disabled: true,
},
ownerChanged: {
title: 'Your project has a new owner',
content: data => `${data.firstName} ${data.lastName} is now responsible for project ${data.projectName}. Good luck ${data.firstName}.`,
+ disabled: true,
},
ownerAdded: {
title: 'Ownership changed',
content: data => `Your project has a new owner. ${data.firstName} ${data.lastName} is now responsible for project ${data.projectName}. Good luck ${data.firstName}!`,
+ disabled: true,
},
},
},
diff --git a/src/handlers/memberEvents.js b/src/handlers/memberEvents.js
index e5ec2dc..4654c86 100644
--- a/src/handlers/memberEvents.js
+++ b/src/handlers/memberEvents.js
@@ -59,11 +59,13 @@ function* memberAdded(logger, data) {
lastName: addedMember.lastName,
};
- notifications.discourse = [{
- projectId: project.id,
- title: topic.title,
- content: topic.content(topicData),
- }];
+ if (topic && !topic.disabled) {
+ notifications.discourse = [{
+ projectId: project.id,
+ title: topic.title,
+ content: topic.content(topicData),
+ }];
+ }
return notifications;
}
@@ -79,6 +81,7 @@ function* memberRemoved(logger, data) {
];
let topic;
+ const notifications = {};
if (data.updatedBy === data.userId) {
// Left
topic = constants.notifications.discourse.teamMembers.left;
@@ -93,13 +96,13 @@ function* memberRemoved(logger, data) {
lastName: removedMember.lastName,
};
- const notifications = {
- discourse: [{
+ if (topic && !topic.disabled) {
+ notifications.discourse = [{
projectId: project.id,
title: topic.title,
content: topic.content(topicData),
- }],
- };
+ }];
+ }
return notifications;
}
@@ -119,6 +122,8 @@ function* memberUpdated(logger, data) {
];
const topic = constants.notifications.discourse.teamMembers.ownerChanged;
+
+ const notifications = {};
const topicData = {
projectName: project.name,
projectUrl: `https://connect.${config.get('AUTH_DOMAIN')}/projects/${project.id}/`,
@@ -126,13 +131,13 @@ function* memberUpdated(logger, data) {
lastName: updatedMember.lastName,
};
- const notifications = {
- discourse: [{
+ if (topic && !topic.disabled) {
+ notifications.discourse = [{
projectId: project.id,
title: topic.title,
content: topic.content(topicData),
- }],
- };
+ }];
+ }
return notifications;
}
diff --git a/src/test/app.test.js b/src/test/app.test.js
index fec3579..fff9a5d 100644
--- a/src/test/app.test.js
+++ b/src/test/app.test.js
@@ -345,11 +345,7 @@ describe('app', () => {
it('should create `Project.Member.ownerAdded` notification', (done) => {
sendTestEvent(sampleEvents.memberAddedOwner, 'project.member.added');
setTimeout(() => {
- const expectedTitle = 'Ownership changed';
- const expectedBody = 'Your project has a new owner. F_user L_user is now responsible for project Project name 1. Good luck F_user!';
- const params = spy.lastCall.args;
- assert.equal(params[2], expectedTitle);
- assert.equal(params[3], expectedBody);
+ sinon.assert.notCalled(spy);
done();
}, testTimeout);
});
@@ -357,11 +353,7 @@ describe('app', () => {
it('should create `Project.Member.TeamMemberAdded` notification', (done) => {
sendTestEvent(sampleEvents.memberAddedTeamMember, 'project.member.added');
setTimeout(() => {
- const expectedTitle = 'A new team member has joined your project';
- const expectedBody = 'F_user L_user has joined project Project name 1. Welcome F_user! Looking forward to working with you.';
- const params = spy.lastCall.args;
- assert.equal(params[2], expectedTitle);
- assert.equal(params[3], expectedBody);
+ sinon.assert.notCalled(spy);
done();
}, testTimeout);
});
@@ -369,11 +361,7 @@ describe('app', () => {
it('should create `Project.Member.ManagerJoined` notification', (done) => {
sendTestEvent(sampleEvents.memberAddedManager, 'project.member.added');
setTimeout(() => {
- const expectedTitle = 'A Topcoder project manager has joined your project';
- const expectedBody = 'F_user L_user has joined your project Project name 1 as a project manager.';
- const params = spy.lastCall.args;
- assert.equal(params[2], expectedTitle);
- assert.equal(params[3], expectedBody);
+ sinon.assert.notCalled(spy);
done();
}, testTimeout);
});
@@ -381,11 +369,7 @@ describe('app', () => {
it('should create `Project.Member.CopilotJoined` notification', (done) => {
sendTestEvent(sampleEvents.memberAddedCopilot, 'project.member.added');
setTimeout(() => {
- const expectedTitle = 'A Topcoder copilot has joined your project';
- const expectedBody = 'F_user L_user has joined your project Project name 1 as a copilot.';
- const params = spy.lastCall.args;
- assert.equal(params[2], expectedTitle);
- assert.equal(params[3], expectedBody);
+ sinon.assert.notCalled(spy);
done();
}, testTimeout);
});
@@ -399,11 +383,7 @@ describe('app', () => {
sendTestEvent(sampleEvents.memberAddedCopilot, 'project.member.added');
setTimeout(() => {
- const expectedTitle = 'A Topcoder copilot has joined your project';
- const expectedBody = 'F_user L_user has joined your project test as a copilot.';
- const params = spy.lastCall.args;
- assert.equal(params[2], expectedTitle);
- assert.equal(params[3], expectedBody);
+ sinon.assert.notCalled(spy);
const slackParams = slackSpy.lastCall.args;
const expectedTestCopilotNotificaton = _.cloneDeep(expectedClaimedSlackCopilotNotification);
_.extend(expectedTestCopilotNotificaton.attachments[0], {
@@ -421,11 +401,7 @@ describe('app', () => {
it('should create `Project.Member.Left` notification', (done) => {
sendTestEvent(sampleEvents.memberRemovedLeft, 'project.member.removed');
setTimeout(() => {
- const expectedTitle = 'A team member has left your project';
- const expectedBody = 'F_user L_user has left project Project name 1. Thanks for all your work F_user.';
- const params = spy.lastCall.args;
- assert.equal(params[2], expectedTitle);
- assert.equal(params[3], expectedBody);
+ sinon.assert.notCalled(spy);
done();
}, testTimeout);
});
@@ -433,11 +409,7 @@ describe('app', () => {
it('should create `Project.Member.Removed` notification', (done) => {
sendTestEvent(sampleEvents.memberRemovedRemoved, 'project.member.removed');
setTimeout(() => {
- const expectedTitle = 'A team member has left your project';
- const expectedBody = 'F_user L_user has left project Project name 1. Thanks for all your work F_user.';
- const params = spy.lastCall.args;
- assert.equal(params[2], expectedTitle);
- assert.equal(params[3], expectedBody);
+ sinon.assert.notCalled(spy);
done();
}, testTimeout);
});
@@ -447,11 +419,7 @@ describe('app', () => {
it('should create `Project.OwnerChanged` notification', (done) => {
sendTestEvent(sampleEvents.memberUpdated, 'project.member.updated');
setTimeout(() => {
- const expectedTitle = 'Your project has a new owner';
- const expectedBody = 'F_user L_user is now responsible for project Project name 1. Good luck F_user.';
- const params = spy.lastCall.args;
- assert.equal(params[2], expectedTitle);
- assert.equal(params[3], expectedBody);
+ sinon.assert.notCalled(spy);
done();
}, testTimeout);
});