Skip to content

Commit 263c1a3

Browse files
authored
Undefined or Invalid Values Fixes (canada-ca#1552)
* fix domain issues * fix up field values when set to last 30 days
1 parent 1c765ab commit 263c1a3

4 files changed

Lines changed: 90 additions & 20 deletions

File tree

api-js/src/dmarc-summaries/objects/__tests__/dmarc-summary.test.js

Lines changed: 65 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -121,21 +121,71 @@ describe('testing the period gql object', () => {
121121
})
122122
})
123123
describe('testing the month resolver', () => {
124-
it('returns the resolved value', () => {
125-
const demoType = dmarcSummaryType.getFields()
126-
127-
expect(demoType.month.resolve({ startDate: '2021-01-01' }, {}, { moment })).toEqual(
128-
'january',
129-
)
124+
describe('startDate is set to thirty days', () => {
125+
let mockedMoment
126+
beforeEach(() => {
127+
mockedMoment = jest.fn().mockReturnValue({
128+
month() {
129+
return {
130+
format() {
131+
return 'january'
132+
},
133+
}
134+
},
135+
})
136+
})
137+
it('returns the resolved value', () => {
138+
const demoType = dmarcSummaryType.getFields()
139+
140+
expect(
141+
demoType.month.resolve(
142+
{ startDate: 'thirtyDays' },
143+
{},
144+
{ moment: mockedMoment },
145+
),
146+
).toEqual('january')
147+
})
148+
})
149+
describe('startDate is not set to thirty days', () => {
150+
it('returns the resolved value', () => {
151+
const demoType = dmarcSummaryType.getFields()
152+
153+
expect(
154+
demoType.month.resolve({ startDate: '2021-01-01' }, {}, { moment }),
155+
).toEqual('january')
156+
})
130157
})
131158
})
132159
describe('testing the year resolver', () => {
133-
it('returns the resolved value', () => {
134-
const demoType = dmarcSummaryType.getFields()
135-
136-
expect(
137-
demoType.year.resolve({ startDate: '2020-01-01' }, {}, { moment }),
138-
).toEqual('2020')
160+
describe('start date is set to thirty days', () => {
161+
let mockedMoment
162+
beforeEach(() => {
163+
mockedMoment = jest.fn().mockReturnValue({
164+
year() {
165+
return '2020'
166+
},
167+
})
168+
})
169+
it('returns the resolved value', () => {
170+
const demoType = dmarcSummaryType.getFields()
171+
172+
expect(
173+
demoType.year.resolve(
174+
{ startDate: '2020-01-01' },
175+
{},
176+
{ moment: mockedMoment },
177+
),
178+
).toEqual('2020')
179+
})
180+
})
181+
describe('start date is not set to thirty days', () => {
182+
it('returns the resolved value', () => {
183+
const demoType = dmarcSummaryType.getFields()
184+
185+
expect(
186+
demoType.year.resolve({ startDate: '2020-01-01' }, {}, { moment }),
187+
).toEqual('2020')
188+
})
139189
})
140190
})
141191
describe('testing the categoryPercentages resolver', () => {
@@ -186,7 +236,9 @@ describe('testing the period gql object', () => {
186236
_to: 'domains/1',
187237
}
188238

189-
expect(demoType.detailTables.resolve(data)).toEqual({ _to: 'domains/1' })
239+
expect(demoType.detailTables.resolve(data)).toEqual({
240+
_to: 'domains/1',
241+
})
190242
})
191243
})
192244
})

api-js/src/dmarc-summaries/objects/dmarc-summary.js

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,15 +29,27 @@ export const dmarcSummaryType = new GraphQLObjectType({
2929
type: PeriodEnums,
3030
description: 'Start date of data collection.',
3131
resolve: ({ startDate }, _, { moment }) => {
32-
const month = moment(startDate).month()
32+
let month
33+
if (startDate === 'thirtyDays') {
34+
month = moment().month()
35+
} else {
36+
month = moment(startDate).month()
37+
}
3338
return String(moment().month(month).format('MMMM')).toLowerCase()
3439
},
3540
},
3641
year: {
3742
type: Year,
3843
description: 'End date of data collection.',
39-
resolve: ({ startDate }, _, { moment }) =>
40-
String(moment(startDate).year()),
44+
resolve: ({ startDate }, _, { moment }) => {
45+
let year
46+
if (startDate === 'thirtyDays') {
47+
year = String(moment().year())
48+
} else {
49+
year = String(moment(startDate).year())
50+
}
51+
return year
52+
},
4153
},
4254
categoryPercentages: {
4355
type: categoryPercentagesType,

api-js/src/domain/objects/__tests__/domain.test.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -403,7 +403,7 @@ describe('given the domain object', () => {
403403
const expectedEdgeCursor = await query`
404404
FOR edge IN domainsToDmarcSummaries
405405
FILTER edge.startDate == "2021-01-01"
406-
RETURN edge
406+
RETURN MERGE({ domainKey: ${domainOne._id} }, edge)
407407
`
408408
const expectedEdge = await expectedEdgeCursor.next()
409409

@@ -516,7 +516,7 @@ describe('given the domain object', () => {
516516
it('returns the resolved value', async () => {
517517
const expectedEdgesCursor = await query`
518518
FOR edge IN domainsToDmarcSummaries
519-
RETURN edge
519+
RETURN MERGE({ domainKey: ${domainOne._id} }, edge)
520520
`
521521
const expectedResult = await expectedEdgesCursor.all()
522522

api-js/src/domain/objects/domain.js

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ export const domainType = new GraphQLObjectType({
122122
startDate,
123123
})
124124

125-
return dmarcSummaryEdge
125+
return { domainKey: _id, ...dmarcSummaryEdge }
126126
},
127127
},
128128
yearlyDmarcSummaries: {
@@ -154,7 +154,13 @@ export const domainType = new GraphQLObjectType({
154154
const dmarcSummaryEdges = await dmarcYearlySumEdgeLoader({
155155
domainId: _id,
156156
})
157-
return dmarcSummaryEdges
157+
158+
const edges = dmarcSummaryEdges.map((edge) => ({
159+
domainKey: _id,
160+
...edge,
161+
}))
162+
163+
return edges
158164
},
159165
},
160166
}),

0 commit comments

Comments
 (0)