mirror of
https://github.com/hedgedoc/hedgedoc.git
synced 2024-11-25 03:06:31 -05:00
fix(history): fix updateHistoryEntryTimestamp to handle nullable user
If a user is null it means we're handling a guest user. Signed-off-by: Philip Molares <philip.molares@udo.edu>
This commit is contained in:
parent
8bb74bd34a
commit
cf89ecf29c
2 changed files with 14 additions and 4 deletions
|
@ -7,6 +7,7 @@ import { ConfigModule } from '@nestjs/config';
|
||||||
import { EventEmitterModule } from '@nestjs/event-emitter';
|
import { EventEmitterModule } from '@nestjs/event-emitter';
|
||||||
import { Test, TestingModule } from '@nestjs/testing';
|
import { Test, TestingModule } from '@nestjs/testing';
|
||||||
import { getDataSourceToken, getRepositoryToken } from '@nestjs/typeorm';
|
import { getDataSourceToken, getRepositoryToken } from '@nestjs/typeorm';
|
||||||
|
import assert from 'assert';
|
||||||
import { Mock } from 'ts-mockery';
|
import { Mock } from 'ts-mockery';
|
||||||
import { DataSource, EntityManager, Repository } from 'typeorm';
|
import { DataSource, EntityManager, Repository } from 'typeorm';
|
||||||
|
|
||||||
|
@ -205,6 +206,7 @@ describe('HistoryService', () => {
|
||||||
Note.create(user, alias) as Note,
|
Note.create(user, alias) as Note,
|
||||||
user,
|
user,
|
||||||
);
|
);
|
||||||
|
assert(createHistoryEntry != null);
|
||||||
expect(await (await createHistoryEntry.note).aliases).toHaveLength(1);
|
expect(await (await createHistoryEntry.note).aliases).toHaveLength(1);
|
||||||
expect((await (await createHistoryEntry.note).aliases)[0].name).toEqual(
|
expect((await (await createHistoryEntry.note).aliases)[0].name).toEqual(
|
||||||
alias,
|
alias,
|
||||||
|
@ -225,6 +227,7 @@ describe('HistoryService', () => {
|
||||||
Note.create(user, alias) as Note,
|
Note.create(user, alias) as Note,
|
||||||
user,
|
user,
|
||||||
);
|
);
|
||||||
|
assert(createHistoryEntry != null);
|
||||||
expect(await (await createHistoryEntry.note).aliases).toHaveLength(1);
|
expect(await (await createHistoryEntry.note).aliases).toHaveLength(1);
|
||||||
expect((await (await createHistoryEntry.note).aliases)[0].name).toEqual(
|
expect((await (await createHistoryEntry.note).aliases)[0].name).toEqual(
|
||||||
alias,
|
alias,
|
||||||
|
@ -237,6 +240,10 @@ describe('HistoryService', () => {
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
it('returns null if user is null', async () => {
|
||||||
|
const entry = await service.updateHistoryEntryTimestamp({} as Note, null);
|
||||||
|
expect(entry).toBeNull();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('updateHistoryEntry', () => {
|
describe('updateHistoryEntry', () => {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2021 The HedgeDoc developers (see AUTHORS file)
|
* SPDX-FileCopyrightText: 2022 The HedgeDoc developers (see AUTHORS file)
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: AGPL-3.0-only
|
* SPDX-License-Identifier: AGPL-3.0-only
|
||||||
*/
|
*/
|
||||||
|
@ -74,13 +74,16 @@ export class HistoryService {
|
||||||
* Updates the updatedAt timestamp of a HistoryEntry.
|
* Updates the updatedAt timestamp of a HistoryEntry.
|
||||||
* If no history entry exists, it will be created.
|
* If no history entry exists, it will be created.
|
||||||
* @param {Note} note - the note that the history entry belongs to
|
* @param {Note} note - the note that the history entry belongs to
|
||||||
* @param {User} user - the user that the history entry belongs to
|
* @param {User | null} user - the user that the history entry belongs to
|
||||||
* @return {HistoryEntry} the requested history entry
|
* @return {HistoryEntry} the requested history entry
|
||||||
*/
|
*/
|
||||||
async updateHistoryEntryTimestamp(
|
async updateHistoryEntryTimestamp(
|
||||||
note: Note,
|
note: Note,
|
||||||
user: User,
|
user: User | null,
|
||||||
): Promise<HistoryEntry> {
|
): Promise<HistoryEntry | null> {
|
||||||
|
if (user == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
try {
|
try {
|
||||||
const entry = await this.getEntryByNote(note, user);
|
const entry = await this.getEntryByNote(note, user);
|
||||||
entry.updatedAt = new Date();
|
entry.updatedAt = new Date();
|
||||||
|
|
Loading…
Reference in a new issue