diff --git a/plugins/linguist-backend/api-report.md b/plugins/linguist-backend/api-report.md index 795271f46c..8b17b997dd 100644 --- a/plugins/linguist-backend/api-report.md +++ b/plugins/linguist-backend/api-report.md @@ -60,9 +60,9 @@ export class LinguistBackendDatabase implements LinguistBackendStore { // (undocumented) getEntityResults(entityRef: string): Promise; // (undocumented) - getProcessedEntities(): Promise; + getProcessedEntities(): Promise; // (undocumented) - getUnprocessedEntities(): Promise; + getUnprocessedEntities(): Promise; // (undocumented) insertEntityResults(entityLanguages: EntityResults): Promise; // (undocumented) @@ -74,9 +74,9 @@ export interface LinguistBackendStore { // (undocumented) getEntityResults(entityRef: string): Promise; // (undocumented) - getProcessedEntities(): Promise; + getProcessedEntities(): Promise; // (undocumented) - getUnprocessedEntities(): Promise; + getUnprocessedEntities(): Promise; // (undocumented) insertEntityResults(entityLanguages: EntityResults): Promise; // (undocumented) diff --git a/plugins/linguist-backend/src/api/LinguistBackendClient.test.ts b/plugins/linguist-backend/src/api/LinguistBackendClient.test.ts index 58aae70106..35336bb5e9 100644 --- a/plugins/linguist-backend/src/api/LinguistBackendClient.test.ts +++ b/plugins/linguist-backend/src/api/LinguistBackendClient.test.ts @@ -234,10 +234,10 @@ describe('Linguist backend API', () => { expect(overview.staleCount).toEqual(1); expect(overview.pendingCount).toEqual(4); expect(overview.filteredEntities).toEqual([ - 'component:default/stale-service-two', 'component:default/service-three', 'component:default/service-four', 'component:default/service-five', + 'component:default/stale-service-two', ]); }); diff --git a/plugins/linguist-backend/src/api/LinguistBackendClient.ts b/plugins/linguist-backend/src/api/LinguistBackendClient.ts index 890e6438b2..a2f6e1ef67 100644 --- a/plugins/linguist-backend/src/api/LinguistBackendClient.ts +++ b/plugins/linguist-backend/src/api/LinguistBackendClient.ts @@ -175,7 +175,7 @@ export class LinguistBackendClient implements LinguistBackendApi { .map(pe => pe.entityRef); const unprocessedEntities = await this.store.getUnprocessedEntities(); - const filteredEntities = staleEntities.concat(unprocessedEntities); + const filteredEntities = unprocessedEntities.concat(staleEntities); const entitiesOverview: EntitiesOverview = { entityCount: unprocessedEntities.length + processedEntities.length, diff --git a/plugins/linguist-backend/src/db/LinguistBackendDatabase.test.ts b/plugins/linguist-backend/src/db/LinguistBackendDatabase.test.ts index f4e0bba627..1ab092b953 100644 --- a/plugins/linguist-backend/src/db/LinguistBackendDatabase.test.ts +++ b/plugins/linguist-backend/src/db/LinguistBackendDatabase.test.ts @@ -134,6 +134,13 @@ describe('Linguist database', () => { expect(unprocessedEntities).toMatchObject(validUnprocessedEntities); }); + it('should return string[] when there is no unprocessed entities', async () => { + await testDbClient('entity_result').delete(); + const unprocessedEntities = await store.getUnprocessedEntities(); + + expect(unprocessedEntities).toMatchObject([]); + }); + it('should be able to return processed entities', async () => { const validProcessedEntities: ProcessedEntity[] = [ { @@ -155,6 +162,13 @@ describe('Linguist database', () => { expect(processedEntities).toMatchObject(validProcessedEntities); }); + it('should return string[] when there is no processed entities', async () => { + await testDbClient('entity_result').delete(); + const unprocessedEntities = await store.getProcessedEntities(); + + expect(unprocessedEntities).toMatchObject([]); + }); + it('should insert new entities and ignore duplicates', async () => { const before = testDbClient.count('entity_result'); diff --git a/plugins/linguist-backend/src/db/LinguistBackendDatabase.ts b/plugins/linguist-backend/src/db/LinguistBackendDatabase.ts index c045d0a4a9..5a165695da 100644 --- a/plugins/linguist-backend/src/db/LinguistBackendDatabase.ts +++ b/plugins/linguist-backend/src/db/LinguistBackendDatabase.ts @@ -35,8 +35,8 @@ export interface LinguistBackendStore { insertEntityResults(entityLanguages: EntityResults): Promise; insertNewEntity(entityRef: string): Promise; getEntityResults(entityRef: string): Promise; - getProcessedEntities(): Promise; - getUnprocessedEntities(): Promise; + getProcessedEntities(): Promise; + getUnprocessedEntities(): Promise; } const migrationsDir = resolvePackagePath( @@ -108,7 +108,7 @@ export class LinguistBackendDatabase implements LinguistBackendStore { } } - async getProcessedEntities(): Promise { + async getProcessedEntities(): Promise { const rawEntities = await this.db('entity_result') .whereNotNull('processed_date') .whereNotNull('languages'); @@ -140,7 +140,7 @@ export class LinguistBackendDatabase implements LinguistBackendStore { return processedEntities; } - async getUnprocessedEntities(): Promise { + async getUnprocessedEntities(): Promise { const rawEntities = await this.db('entity_result') // TODO(ahhhndre) processed_date should always be null as well but it had a default to the current date // once the default has been removed and released, we can then come back an enable this check