From 337b723d248ce856ab092d2e8c76ce51ef1f4a23 Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Mon, 9 Jan 2023 15:55:44 +0800 Subject: [PATCH 1/7] Fix creation of content display report --- packages/api/src/services/reports.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/api/src/services/reports.ts b/packages/api/src/services/reports.ts index 5f39b669d..e83b0f70f 100644 --- a/packages/api/src/services/reports.ts +++ b/packages/api/src/services/reports.ts @@ -21,7 +21,7 @@ export const saveContentDisplayReport = async ( // reparsed or updated later, this gives us a view of exactly // what the user saw. const result = await repo.save({ - userId: uid, + user: { id: uid }, elasticPageId: input.pageId, content: page.content, originalHtml: page.originalHtml || undefined, From 3bff5fe7f8e99fc70ab2e3c333248f0e2fab3cc9 Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Mon, 9 Jan 2023 17:03:15 +0800 Subject: [PATCH 2/7] Add a test for the content display report service --- .../create_content_display_report.test.ts | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 packages/api/test/services/create_content_display_report.test.ts diff --git a/packages/api/test/services/create_content_display_report.test.ts b/packages/api/test/services/create_content_display_report.test.ts new file mode 100644 index 000000000..6b72923d3 --- /dev/null +++ b/packages/api/test/services/create_content_display_report.test.ts @@ -0,0 +1,63 @@ +import 'mocha' +import chai, { expect } from 'chai' +import 'chai/register-should' +import { + createTestPage, + createTestUser, + createUserWithoutProfile, + deleteTestUser, + getProfile, +} from '../db' +import { createGroup } from '../../src/services/groups' +import { + getUserFollowers, + getUserFollowing, +} from '../../src/services/followers' +import { StatusType } from '../../src/datalayer/user/model' +import sinonChai from 'sinon-chai' +import sinon from 'sinon' +import * as util from '../../src/utils/sendEmail' +import { MailDataRequired } from '@sendgrid/helpers/classes/mail' +import { User } from '../../src/entity/user' +import { getRepository } from '../../src/entity/utils' +import { ContentDisplayReport } from '../../src/entity/reports/content_display_report' +import { saveContentDisplayReport } from '../../src/services/reports' +import { ReportType } from '../../src/generated/graphql' +import { createTestElasticPage } from '../util' +import { Page } from '../../src/elastic/types' + +chai.use(sinonChai) + +describe('saveContentDisplayReport', () => { + let user: User + let page: Page + + before(async () => { + user = await createTestUser('fakeContentUser') + page = await createTestElasticPage(user.id) + }) + + after(async () => { + await getRepository(ContentDisplayReport).delete({ + user: { id: user.id }, + }) + await deleteTestUser(user.id) + }) + + it('creates a report', async () => { + await getRepository(ContentDisplayReport).clear() + const result = await saveContentDisplayReport(user.id, { + itemUrl: 'https://fake.url.com', + pageId: page.id, + reportComment: 'report comment', + reportTypes: [ReportType.ContentDisplay], + }) + expect(result).to.eql(true) + const saved = await getRepository(ContentDisplayReport).findOneBy({ + user: { id: user.id }, + elasticPageId: page.id, + }) + + expect(saved?.reportComment).to.eql('report comment') + }) +}) From 1a7b6a2c592ab2e4801d3548fc0508b6fbfe72e9 Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Mon, 9 Jan 2023 18:03:31 +0800 Subject: [PATCH 3/7] Remove constraints on content display reports We dont want to ever clear the content reports table, even if a user is deleted the report is still valid, so remove the constraints. --- .../0105.do.remove_content_report_constraints.sql | 13 +++++++++++++ ...0105.undo.remove_content_report_constraints.sql | 14 ++++++++++++++ 2 files changed, 27 insertions(+) create mode 100755 packages/db/migrations/0105.do.remove_content_report_constraints.sql create mode 100755 packages/db/migrations/0105.undo.remove_content_report_constraints.sql diff --git a/packages/db/migrations/0105.do.remove_content_report_constraints.sql b/packages/db/migrations/0105.do.remove_content_report_constraints.sql new file mode 100755 index 000000000..6735f360b --- /dev/null +++ b/packages/db/migrations/0105.do.remove_content_report_constraints.sql @@ -0,0 +1,13 @@ +-- Type: DO +-- Name: remove_content_report_constraints +-- Description: Remove unneeded constraints from the content_report table + +BEGIN; + +ALTER TABLE omnivore.content_display_report + DROP CONSTRAINT content_display_report_page_id_fkey; + +ALTER TABLE omnivore.content_display_report + DROP CONSTRAINT content_display_report_user_id_fkey; + +COMMIT; diff --git a/packages/db/migrations/0105.undo.remove_content_report_constraints.sql b/packages/db/migrations/0105.undo.remove_content_report_constraints.sql new file mode 100755 index 000000000..04979b815 --- /dev/null +++ b/packages/db/migrations/0105.undo.remove_content_report_constraints.sql @@ -0,0 +1,14 @@ +-- Type: UNDO +-- Name: remove_content_report_constraints +-- Description: Remove unneeded constraints from the content_report table + +BEGIN; + +ALTER TABLE omnivore.content_display_report + ADD CONSTRAINT content_display_report_user_id_fkey FOREIGN KEY (user_id) REFERENCES omnivore."user"(id); + +ALTER TABLE omnivore.content_display_report + ADD CONSTRAINT content_display_report_page_id_fkey FOREIGN KEY (page_id) REFERENCES omnivore.pages(id); + + +COMMIT; From 706c4dea18e3d53ac610639a51855006a56eece7 Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Mon, 9 Jan 2023 21:44:04 +0800 Subject: [PATCH 4/7] Dont try to clean up content display reports when running tests --- packages/api/test/db.ts | 1 + .../create_content_display_report.test.ts | 17 +---------------- 2 files changed, 2 insertions(+), 16 deletions(-) diff --git a/packages/api/test/db.ts b/packages/api/test/db.ts index fd4386bfc..4dca4e85c 100644 --- a/packages/api/test/db.ts +++ b/packages/api/test/db.ts @@ -15,6 +15,7 @@ import { SnakeNamingStrategy } from 'typeorm-naming-strategies' import { SubscriptionStatus } from '../src/generated/graphql' import { Integration } from '../src/entity/integration' import { FindOptionsWhere } from 'typeorm' +import { ContentDisplayReport } from '../src/entity/reports/content_display_report' const runMigrations = async () => { const migrationDirectory = __dirname + '/../../db/migrations' diff --git a/packages/api/test/services/create_content_display_report.test.ts b/packages/api/test/services/create_content_display_report.test.ts index 6b72923d3..e0815ff5b 100644 --- a/packages/api/test/services/create_content_display_report.test.ts +++ b/packages/api/test/services/create_content_display_report.test.ts @@ -1,19 +1,7 @@ import 'mocha' import chai, { expect } from 'chai' import 'chai/register-should' -import { - createTestPage, - createTestUser, - createUserWithoutProfile, - deleteTestUser, - getProfile, -} from '../db' -import { createGroup } from '../../src/services/groups' -import { - getUserFollowers, - getUserFollowing, -} from '../../src/services/followers' -import { StatusType } from '../../src/datalayer/user/model' +import { createTestUser, deleteTestUser } from '../db' import sinonChai from 'sinon-chai' import sinon from 'sinon' import * as util from '../../src/utils/sendEmail' @@ -38,9 +26,6 @@ describe('saveContentDisplayReport', () => { }) after(async () => { - await getRepository(ContentDisplayReport).delete({ - user: { id: user.id }, - }) await deleteTestUser(user.id) }) From 2ad517ba698920fd0a985dee4c7d6eaff7d8e6a5 Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Wed, 11 Jan 2023 10:44:00 +0800 Subject: [PATCH 5/7] Remove migrations to try and fix CI --- .../0105.do.remove_content_report_constraints.sql | 13 ------------- ...0105.undo.remove_content_report_constraints.sql | 14 -------------- 2 files changed, 27 deletions(-) delete mode 100755 packages/db/migrations/0105.do.remove_content_report_constraints.sql delete mode 100755 packages/db/migrations/0105.undo.remove_content_report_constraints.sql diff --git a/packages/db/migrations/0105.do.remove_content_report_constraints.sql b/packages/db/migrations/0105.do.remove_content_report_constraints.sql deleted file mode 100755 index 6735f360b..000000000 --- a/packages/db/migrations/0105.do.remove_content_report_constraints.sql +++ /dev/null @@ -1,13 +0,0 @@ --- Type: DO --- Name: remove_content_report_constraints --- Description: Remove unneeded constraints from the content_report table - -BEGIN; - -ALTER TABLE omnivore.content_display_report - DROP CONSTRAINT content_display_report_page_id_fkey; - -ALTER TABLE omnivore.content_display_report - DROP CONSTRAINT content_display_report_user_id_fkey; - -COMMIT; diff --git a/packages/db/migrations/0105.undo.remove_content_report_constraints.sql b/packages/db/migrations/0105.undo.remove_content_report_constraints.sql deleted file mode 100755 index 04979b815..000000000 --- a/packages/db/migrations/0105.undo.remove_content_report_constraints.sql +++ /dev/null @@ -1,14 +0,0 @@ --- Type: UNDO --- Name: remove_content_report_constraints --- Description: Remove unneeded constraints from the content_report table - -BEGIN; - -ALTER TABLE omnivore.content_display_report - ADD CONSTRAINT content_display_report_user_id_fkey FOREIGN KEY (user_id) REFERENCES omnivore."user"(id); - -ALTER TABLE omnivore.content_display_report - ADD CONSTRAINT content_display_report_page_id_fkey FOREIGN KEY (page_id) REFERENCES omnivore.pages(id); - - -COMMIT; From 9d8f51f8664781da9c2114048ecbc652ed15ef2c Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Wed, 11 Jan 2023 10:57:21 +0800 Subject: [PATCH 6/7] Update migrations file as there was a conflict with previous --- ...ove_constraints_from_content_display_reports.sql | 10 ++++++++++ ...ove_constraints_from_content_display_reports.sql | 13 +++++++++++++ 2 files changed, 23 insertions(+) create mode 100755 packages/db/migrations/0106.do.remove_constraints_from_content_display_reports.sql create mode 100755 packages/db/migrations/0106.undo.remove_constraints_from_content_display_reports.sql diff --git a/packages/db/migrations/0106.do.remove_constraints_from_content_display_reports.sql b/packages/db/migrations/0106.do.remove_constraints_from_content_display_reports.sql new file mode 100755 index 000000000..45da771c0 --- /dev/null +++ b/packages/db/migrations/0106.do.remove_constraints_from_content_display_reports.sql @@ -0,0 +1,10 @@ +-- Type: DO +-- Name: remove_constraints_from_content_display_reports +-- Description: Remove constraints from CD reports as they should not be deleted + +BEGIN; + +ALTER TABLE omnivore.content_display_report DROP CONSTRAINT content_display_report_page_id_fkey; +ALTER TABLE omnivore.content_display_report DROP CONSTRAINT content_display_report_user_id_fkey; + +COMMIT; diff --git a/packages/db/migrations/0106.undo.remove_constraints_from_content_display_reports.sql b/packages/db/migrations/0106.undo.remove_constraints_from_content_display_reports.sql new file mode 100755 index 000000000..731665cde --- /dev/null +++ b/packages/db/migrations/0106.undo.remove_constraints_from_content_display_reports.sql @@ -0,0 +1,13 @@ +-- Type: UNDO +-- Name: remove_constraints_from_content_display_reports +-- Description: Remove constraints from CD reports as they should not be deleted + +BEGIN; + +ALTER TABLE omnivore.content_display_report + ADD CONSTRAINT content_display_report_user_id_fkey FOREIGN KEY (user_id) REFERENCES omnivore."user"(id); + +ALTER TABLE omnivore.content_display_report + ADD CONSTRAINT content_display_report_page_id_fkey FOREIGN KEY (page_id) REFERENCES omnivore.pages(id); + +COMMIT; From 397233054b9c001157ad023ea406dca0486ba2e3 Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Wed, 11 Jan 2023 11:15:37 +0800 Subject: [PATCH 7/7] Dont clear content display reports before running test (this was just there for debug) --- packages/api/test/services/create_content_display_report.test.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/api/test/services/create_content_display_report.test.ts b/packages/api/test/services/create_content_display_report.test.ts index e0815ff5b..375d5f6a4 100644 --- a/packages/api/test/services/create_content_display_report.test.ts +++ b/packages/api/test/services/create_content_display_report.test.ts @@ -30,7 +30,6 @@ describe('saveContentDisplayReport', () => { }) it('creates a report', async () => { - await getRepository(ContentDisplayReport).clear() const result = await saveContentDisplayReport(user.id, { itemUrl: 'https://fake.url.com', pageId: page.id,