diff --git a/packages/api/src/elastic/labels.ts b/packages/api/src/elastic/labels.ts index 687d8f0d2..ffbbeb3c8 100644 --- a/packages/api/src/elastic/labels.ts +++ b/packages/api/src/elastic/labels.ts @@ -286,7 +286,7 @@ export const deleteLabelForHighlights = async ( path: 'highlights', query: { nested: { - path: 'labels', + path: 'highlights.labels', query: { term: { 'highlights.labels.name': label, diff --git a/packages/api/test/resolvers/labels.test.ts b/packages/api/test/resolvers/labels.test.ts index 0701cdc0b..7b469f80e 100644 --- a/packages/api/test/resolvers/labels.test.ts +++ b/packages/api/test/resolvers/labels.test.ts @@ -14,7 +14,10 @@ import { getRepository } from '../../src/entity/utils' import { getPageById } from '../../src/elastic/pages' import { addLabelInPage } from '../../src/elastic/labels' import { createPubSubClient } from '../../src/datalayer/pubsub' -import { addHighlightToPage } from '../../src/elastic/highlights' +import { + addHighlightToPage, + getHighlightById, +} from '../../src/elastic/highlights' describe('Labels API', () => { const username = 'fakeUser' @@ -239,6 +242,30 @@ describe('Labels API', () => { expect(updatedPage?.labels).not.to.include(toDeleteLabel) }) }) + + context('when a highlight has this label', () => { + const highlightId = 'testDeleteLabel' + + before(async () => { + const highlight: Highlight = { + id: highlightId, + patch: 'test patch', + quote: 'test quote', + shortId: 'test shortId', + userId: user.id, + createdAt: new Date(), + labels: [toDeleteLabel], + } + await addHighlightToPage(page.id, highlight, ctx) + }) + + it('should update highlight', async () => { + await graphqlRequest(query, authToken).expect(200) + const updatedHighlight = await getHighlightById(highlightId) + + expect(updatedHighlight?.labels).not.to.include(toDeleteLabel) + }) + }) }) context('when label not exist', () => {