diff --git a/packages/api/src/elastic/pages.ts b/packages/api/src/elastic/pages.ts index 528222f5f..85850e288 100644 --- a/packages/api/src/elastic/pages.ts +++ b/packages/api/src/elastic/pages.ts @@ -2,6 +2,7 @@ import { ResponseError } from '@elastic/elasticsearch/lib/errors' import { BuiltQuery, ESBuilder, esBuilder } from 'elastic-ts' import { EntityType } from '../datalayer/pubsub' import { BulkActionType } from '../generated/graphql' +import { wordsCount } from '../utils/helpers' import { DateFilter, FieldFilter, @@ -245,6 +246,7 @@ export const createPage = async ( ...page, updatedAt: new Date(), savedAt: new Date(), + wordsCount: page.wordsCount ?? wordsCount(page.content), }, refresh: 'wait_for', // wait for the index to be refreshed before returning }) diff --git a/packages/api/test/resolvers/popular_reads.test.ts b/packages/api/test/resolvers/popular_reads.test.ts index 22d216b6e..a8d2953fc 100644 --- a/packages/api/test/resolvers/popular_reads.test.ts +++ b/packages/api/test/resolvers/popular_reads.test.ts @@ -1,9 +1,9 @@ -import { createTestUser, deleteTestUser } from '../db' -import { graphqlRequest, request } from '../util' import { expect } from 'chai' import 'mocha' -import { User } from '../../src/entity/user' import { getPageByParam } from '../../src/elastic/pages' +import { User } from '../../src/entity/user' +import { createTestUser, deleteTestUser } from '../db' +import { graphqlRequest, request } from '../util' describe('PopularReads API', () => { let user: User @@ -55,6 +55,7 @@ describe('PopularReads API', () => { expect(page?.url).to.eq( 'https://blog.omnivore.app/p/getting-started-with-omnivore' ) + expect(page?.wordsCount).to.eq(1155) }) it('responds status code 500 when invalid user', async () => {