diff --git a/api-js/src/dmarc-summaries/objects/__tests__/dmarc-summary.test.js b/api-js/src/dmarc-summaries/objects/__tests__/dmarc-summary.test.js index 90d683c505..b8bbbe6671 100644 --- a/api-js/src/dmarc-summaries/objects/__tests__/dmarc-summary.test.js +++ b/api-js/src/dmarc-summaries/objects/__tests__/dmarc-summary.test.js @@ -121,21 +121,71 @@ describe('testing the period gql object', () => { }) }) describe('testing the month resolver', () => { - it('returns the resolved value', () => { - const demoType = dmarcSummaryType.getFields() - - expect(demoType.month.resolve({ startDate: '2021-01-01' }, {}, { moment })).toEqual( - 'january', - ) + describe('startDate is set to thirty days', () => { + let mockedMoment + beforeEach(() => { + mockedMoment = jest.fn().mockReturnValue({ + month() { + return { + format() { + return 'january' + }, + } + }, + }) + }) + it('returns the resolved value', () => { + const demoType = dmarcSummaryType.getFields() + + expect( + demoType.month.resolve( + { startDate: 'thirtyDays' }, + {}, + { moment: mockedMoment }, + ), + ).toEqual('january') + }) + }) + describe('startDate is not set to thirty days', () => { + it('returns the resolved value', () => { + const demoType = dmarcSummaryType.getFields() + + expect( + demoType.month.resolve({ startDate: '2021-01-01' }, {}, { moment }), + ).toEqual('january') + }) }) }) describe('testing the year resolver', () => { - it('returns the resolved value', () => { - const demoType = dmarcSummaryType.getFields() - - expect( - demoType.year.resolve({ startDate: '2020-01-01' }, {}, { moment }), - ).toEqual('2020') + describe('start date is set to thirty days', () => { + let mockedMoment + beforeEach(() => { + mockedMoment = jest.fn().mockReturnValue({ + year() { + return '2020' + }, + }) + }) + it('returns the resolved value', () => { + const demoType = dmarcSummaryType.getFields() + + expect( + demoType.year.resolve( + { startDate: '2020-01-01' }, + {}, + { moment: mockedMoment }, + ), + ).toEqual('2020') + }) + }) + describe('start date is not set to thirty days', () => { + it('returns the resolved value', () => { + const demoType = dmarcSummaryType.getFields() + + expect( + demoType.year.resolve({ startDate: '2020-01-01' }, {}, { moment }), + ).toEqual('2020') + }) }) }) describe('testing the categoryPercentages resolver', () => { @@ -186,7 +236,9 @@ describe('testing the period gql object', () => { _to: 'domains/1', } - expect(demoType.detailTables.resolve(data)).toEqual({ _to: 'domains/1' }) + expect(demoType.detailTables.resolve(data)).toEqual({ + _to: 'domains/1', + }) }) }) }) diff --git a/api-js/src/dmarc-summaries/objects/dmarc-summary.js b/api-js/src/dmarc-summaries/objects/dmarc-summary.js index 63d6f7ff67..3362d2bc43 100644 --- a/api-js/src/dmarc-summaries/objects/dmarc-summary.js +++ b/api-js/src/dmarc-summaries/objects/dmarc-summary.js @@ -29,15 +29,27 @@ export const dmarcSummaryType = new GraphQLObjectType({ type: PeriodEnums, description: 'Start date of data collection.', resolve: ({ startDate }, _, { moment }) => { - const month = moment(startDate).month() + let month + if (startDate === 'thirtyDays') { + month = moment().month() + } else { + month = moment(startDate).month() + } return String(moment().month(month).format('MMMM')).toLowerCase() }, }, year: { type: Year, description: 'End date of data collection.', - resolve: ({ startDate }, _, { moment }) => - String(moment(startDate).year()), + resolve: ({ startDate }, _, { moment }) => { + let year + if (startDate === 'thirtyDays') { + year = String(moment().year()) + } else { + year = String(moment(startDate).year()) + } + return year + }, }, categoryPercentages: { type: categoryPercentagesType, diff --git a/api-js/src/domain/objects/__tests__/domain.test.js b/api-js/src/domain/objects/__tests__/domain.test.js index 8914116cd6..fa44574355 100644 --- a/api-js/src/domain/objects/__tests__/domain.test.js +++ b/api-js/src/domain/objects/__tests__/domain.test.js @@ -403,7 +403,7 @@ describe('given the domain object', () => { const expectedEdgeCursor = await query` FOR edge IN domainsToDmarcSummaries FILTER edge.startDate == "2021-01-01" - RETURN edge + RETURN MERGE({ domainKey: ${domainOne._id} }, edge) ` const expectedEdge = await expectedEdgeCursor.next() @@ -516,7 +516,7 @@ describe('given the domain object', () => { it('returns the resolved value', async () => { const expectedEdgesCursor = await query` FOR edge IN domainsToDmarcSummaries - RETURN edge + RETURN MERGE({ domainKey: ${domainOne._id} }, edge) ` const expectedResult = await expectedEdgesCursor.all() diff --git a/api-js/src/domain/objects/domain.js b/api-js/src/domain/objects/domain.js index c952de32ba..3866517f8a 100644 --- a/api-js/src/domain/objects/domain.js +++ b/api-js/src/domain/objects/domain.js @@ -122,7 +122,7 @@ export const domainType = new GraphQLObjectType({ startDate, }) - return dmarcSummaryEdge + return { domainKey: _id, ...dmarcSummaryEdge } }, }, yearlyDmarcSummaries: { @@ -154,7 +154,13 @@ export const domainType = new GraphQLObjectType({ const dmarcSummaryEdges = await dmarcYearlySumEdgeLoader({ domainId: _id, }) - return dmarcSummaryEdges + + const edges = dmarcSummaryEdges.map((edge) => ({ + domainKey: _id, + ...edge, + })) + + return edges }, }, }),