new users: do not show bailey news (#12693)

This commit is contained in:
Matteo Pagliazzi
2020-10-19 12:13:31 +02:00
parent 8e6ce39d64
commit ec0e5024a7
2 changed files with 39 additions and 0 deletions

View File

@@ -592,6 +592,36 @@ describe('User Model', () => {
}); });
context('pre-save hook', () => { context('pre-save hook', () => {
it('marks the last news post as read for new users', async () => {
const lastNewsPost = { _id: '1' };
sandbox.stub(NewsPost, 'lastNewsPost').returns(lastNewsPost);
let user = new User();
expect(user.isNew).to.equal(true);
user = await user.save();
expect(user.checkNewStuff()).to.equal(false);
expect(user.toJSON().flags.newStuff).to.equal(false);
expect(user.flags.lastNewStuffRead).to.equal(lastNewsPost._id);
});
it('does not mark the last news post as read for existing users', async () => {
const lastNewsPost = { _id: '1' };
const lastNewsPostStub = sandbox.stub(NewsPost, 'lastNewsPost');
lastNewsPostStub.returns(lastNewsPost);
let user = new User();
user = await user.save();
expect(user.isNew).to.equal(false);
user.profile.name = 'new name';
lastNewsPostStub.returns({ _id: '2' });
user = await user.save();
expect(user.flags.lastNewStuffRead).to.equal(lastNewsPost._id); // not _id: 2
});
it('does not try to award achievements when achievements or items not selected in query', async () => { it('does not try to award achievements when achievements or items not selected in query', async () => {
let user = new User(); let user = new User();
user = await user.save(); // necessary for user.isSelected to work correctly user = await user.save(); // necessary for user.isSelected to work correctly

View File

@@ -12,6 +12,9 @@ import {
import { import {
model as Tag, model as Tag,
} from '../tag'; } from '../tag';
import {
model as NewsPost,
} from '../newsPost';
import { // eslint-disable-line import/no-cycle import { // eslint-disable-line import/no-cycle
userActivityWebhook, userActivityWebhook,
} from '../../libs/webhook'; } from '../../libs/webhook';
@@ -129,6 +132,12 @@ function pinBaseItems (user) {
} }
function _setUpNewUser (user) { function _setUpNewUser (user) {
// Mark the last news post as read
const lastNewsPost = NewsPost.lastNewsPost();
if (lastNewsPost) {
user.flags.lastNewStuffRead = lastNewsPost._id;
}
let taskTypes; let taskTypes;
const iterableFlags = user.flags.toObject(); const iterableFlags = user.flags.toObject();