Skip to content

Commit

Permalink
wow everything passes
Browse files Browse the repository at this point in the history
  • Loading branch information
macrael committed Apr 15, 2024
1 parent 5b28925 commit 7ebbba6
Show file tree
Hide file tree
Showing 39 changed files with 1,276 additions and 1,865 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,7 @@ const contractRevisionSchema = z.object({

const rateRevisionSchema = z.object({
id: z.string().uuid(),
rate: z.object({
id: z.string().uuid(),
stateCode: z.string(),
stateNumber: z.number().min(1),
createdAt: z.date(),
}),
rateID: z.string().uuid(),
submitInfo: updateInfoSchema.optional(),
unlockInfo: updateInfoSchema.optional(),
createdAt: z.date(),
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,15 @@
import { findAllRatesWithHistoryBySubmitInfo } from './findAllRatesWithHistoryBySubmitInfo'
import { sharedTestPrismaClient } from '../../testHelpers/storeHelpers'
import { mockInsertRateArgs, must } from '../../testHelpers'
import {
mockInsertContractArgs,
mockInsertRateArgs,
must,
} from '../../testHelpers'
import { v4 as uuidv4 } from 'uuid'
import { insertDraftRate } from './insertRate'
import { submitRate } from './submitRate'
import { unlockRate } from './unlockRate'
import { insertDraftContract } from './insertContract'
import { submitContract } from './submitContract'
import { unlockContract } from './unlockContract'

describe('findAllRatesWithHistoryBySubmittedInfo', () => {
it('returns only rates that have been submitted or unlocked', async () => {
Expand All @@ -20,79 +25,60 @@ describe('findAllRatesWithHistoryBySubmittedInfo', () => {
},
})

const cmsUser = await client.user.create({
data: {
id: uuidv4(),
givenName: 'Zuko',
familyName: 'Hotman',
email: '[email protected]',
role: 'CMS_USER',
},
const draftContractData = mockInsertContractArgs({
submissionDescription: 'one contract',
})
const contractA = must(
await insertDraftContract(client, draftContractData)
)

const draftRateData = mockInsertRateArgs({
rateCertificationName: 'one rate',
})

// make two submitted rates and submit them
const rateOne = must(await insertDraftRate(client, draftRateData))
const rateTwo = must(await insertDraftRate(client, draftRateData))
const submittedRateOne = must(
await submitRate(client, {
rateID: rateOne.id,
submittedByUserID: stateUser.id,
submittedReason: 'rateOne submit',
})
const rateOne = must(
await insertDraftRate(client, contractA.id, draftRateData)
)
const submittedRateTwo = must(
await submitRate(client, {
rateID: rateTwo.id,
submittedByUserID: stateUser.id,
submittedReason: 'rateTwo submit',
})
const rateTwo = must(
await insertDraftRate(client, contractA.id, draftRateData)
)

// make two draft rates
const draftRateOne = must(await insertDraftRate(client, draftRateData))
const draftRateTwo = must(await insertDraftRate(client, draftRateData))

// make one unlocked rate
const rateThree = must(await insertDraftRate(client, draftRateData))
must(
await submitRate(client, {
rateID: rateThree.id,
await submitContract(client, {
contractID: contractA.id,
submittedByUserID: stateUser.id,
submittedReason: 'unlockRateOne submit',
submittedReason: 'Submitting A.1',
})
)
const unlockedRate = must(
await unlockRate(client, {
rateID: rateThree.id,
unlockedByUserID: cmsUser.id,
unlockReason: 'unlock unlockRateOne',

must(
await unlockContract(client, {
contractID: contractA.id,
unlockedByUserID: stateUser.id,
unlockReason: 'Unlock A.1',
})
)

// make two draft rates
const draftRateOne = must(
await insertDraftRate(client, contractA.id, draftRateData)
)
const draftRateTwo = must(
await insertDraftRate(client, contractA.id, draftRateData)
)

// call the find by submit info function
const rates = must(await findAllRatesWithHistoryBySubmitInfo(client))

// expect our two submitted rates
expect(rates).toEqual(
expect.arrayContaining([
expect.objectContaining({
rateID: submittedRateOne.id,
rateID: rateOne.id,
}),
expect.objectContaining({
rateID: submittedRateTwo.id,
}),
])
)

// expect our one unlocked rate
expect(rates).toEqual(
expect.arrayContaining([
expect.objectContaining({
rateID: unlockedRate.id,
rateID: rateTwo.id,
}),
])
)
Expand Down Expand Up @@ -123,31 +109,38 @@ describe('findAllRatesWithHistoryBySubmittedInfo', () => {
},
})

const draftContractData = mockInsertContractArgs({
submissionDescription: 'one contract',
})
const contractA = must(
await insertDraftContract(client, draftContractData)
)

const rateDataForAS = must(
await insertDraftRate(
client,
contractA.id,
mockInsertRateArgs({
stateCode: 'AS',
rateCertificationName: 'one rate',
})
)
)
const submittedRateAmericanSamoa = must(
await submitRate(client, {
rateID: rateDataForAS.id,
must(
await submitContract(client, {
contractID: contractA.id,
submittedByUserID: stateUser.id,
submittedReason: 'rateOne submit',
submittedReason: 'Submitting A.1',
})
)

// call the find by submit info function
const rates = must(await findAllRatesWithHistoryBySubmitInfo(client))

// expect our AS rate to not be in the results
expect(rates).not.toEqual(
expect.arrayContaining([
expect.objectContaining({
rateID: submittedRateAmericanSamoa.id,
rateID: rateDataForAS.id,
}),
])
)
Expand All @@ -166,20 +159,28 @@ describe('findAllRatesWithHistoryBySubmittedInfo', () => {
},
})

const draftContractData = mockInsertContractArgs({
submissionDescription: 'one contract',
})
const contractA = must(
await insertDraftContract(client, draftContractData)
)

const rateDataForMN = must(
await insertDraftRate(
client,
contractA.id,
mockInsertRateArgs({
stateCode: 'MN',
rateCertificationName: 'one rate',
})
)
)
const submittedRateMinnesota = must(
await submitRate(client, {
rateID: rateDataForMN.id,
must(
await submitContract(client, {
contractID: contractA.id,
submittedByUserID: stateUser.id,
submittedReason: 'rateOne submit',
submittedReason: 'Submitting A.1',
})
)

Expand All @@ -192,7 +193,7 @@ describe('findAllRatesWithHistoryBySubmittedInfo', () => {
expect(rates).toEqual(
expect.arrayContaining([
expect.objectContaining({
rateID: submittedRateMinnesota.id,
rateID: rateDataForMN.id,
}),
])
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ describe.skip('findContractWithHistory with full contract and rate history', ()

// Add 3 rates 1, 2, 3 pointing to contract A
const rate1 = must(
await insertDraftRate(client, {
await insertDraftRate(client, contractA.id, {
stateCode: 'MN',
rateCertificationName: 'someurle.en',
})
Expand All @@ -78,7 +78,7 @@ describe.skip('findContractWithHistory with full contract and rate history', ()
)

const rate2 = must(
await insertDraftRate(client, {
await insertDraftRate(client, contractA.id, {
stateCode: 'MN',
rateCertificationName: 'twopointo',
})
Expand All @@ -99,7 +99,7 @@ describe.skip('findContractWithHistory with full contract and rate history', ()
)

const rate3 = must(
await insertDraftRate(client, {
await insertDraftRate(client, contractA.id, {
stateCode: 'MN',
rateCertificationName: 'threepointo',
})
Expand Down Expand Up @@ -397,7 +397,7 @@ describe.skip('findContractWithHistory with full contract and rate history', ()

// Add 3 rates 1, 2, 3 pointing to contract A
const rate1 = must(
await insertDraftRate(client, {
await insertDraftRate(client, contractA.id, {
stateCode: 'MN',
rateCertificationName: 'someurle.en',
})
Expand All @@ -422,7 +422,7 @@ describe.skip('findContractWithHistory with full contract and rate history', ()
)

const rate2 = must(
await insertDraftRate(client, {
await insertDraftRate(client, contractA.id, {
stateCode: 'MN',
rateCertificationName: 'twopointo',
})
Expand All @@ -443,7 +443,7 @@ describe.skip('findContractWithHistory with full contract and rate history', ()
)

const rate3 = must(
await insertDraftRate(client, {
await insertDraftRate(client, contractA.id, {
stateCode: 'MN',
rateCertificationName: 'threepointo',
})
Expand Down Expand Up @@ -895,16 +895,7 @@ describe('findContractWithHistory with only contract history', () => {
}

const contractID = updatedContract.id
const rateID = updatedContract.draftRevision.rateRevisions[0].rate.id

// Submit rate
must(
await submitRate(client, {
rateID,
submittedByUserID: stateUser.id,
submittedReason: 'submit rate A revision 1.0',
})
)
const rateID = updatedContract.draftRevision.rateRevisions[0].rateID

// Submit contract
must(
Expand Down Expand Up @@ -979,22 +970,6 @@ describe('findContractWithHistory with only contract history', () => {
})
)

// Unlock and resubmit rate again
must(
await unlockRate(client, {
rateID,
unlockReason: 'unlock rate A revision 1.3',
unlockedByUserID: cmsUser.id,
})
)
must(
await submitRate(client, {
rateID,
submittedByUserID: stateUser.id,
submittedReason: 'submit rate A revision 1.4',
})
)

// Resubmit contract
must(
await submitContract(client, {
Expand Down Expand Up @@ -1090,13 +1065,6 @@ describe('findContractWithHistory with only contract history', () => {
throw new Error('Unexpected Error: No rate found in contract')
}

must(
await submitRate(client, {
rateID: secondRate.rate.id,
submittedByUserID: stateUser.id,
submittedReason: 'submit rate B revision 1.0',
})
)
must(
await submitContract(client, {
contractID,
Expand All @@ -1108,28 +1076,28 @@ describe('findContractWithHistory with only contract history', () => {
// Unlock and resubmit rate B twice
must(
await unlockRate(client, {
rateID: secondRate.rate.id,
rateID: secondRate.rateID,
unlockedByUserID: cmsUser.id,
unlockReason: 'unlock rate B revision 1.0',
})
)
must(
await submitRate(client, {
rateID: secondRate.rate.id,
rateID: secondRate.rateID,
submittedByUserID: stateUser.id,
submittedReason: 'submit rate B revision 1.1',
})
)
must(
await unlockRate(client, {
rateID: secondRate.rate.id,
rateID: secondRate.rateID,
unlockedByUserID: cmsUser.id,
unlockReason: 'unlock rate B revision 1.1',
})
)
must(
await submitRate(client, {
rateID: secondRate.rate.id,
rateID: secondRate.rateID,
submittedByUserID: stateUser.id,
submittedReason: 'submit rate B revision 1.2',
})
Expand All @@ -1150,7 +1118,7 @@ describe('findContractWithHistory with only contract history', () => {
expect(
submittedContract.revisions[0].rateRevisions[0].submitInfo
?.updatedReason
).toBe('submit rate A revision 1.5')
).toBe('submit contract revision 1.2')
expect(
submittedContract.revisions[0].rateRevisions[1].submitInfo
?.updatedReason
Expand Down
Loading

0 comments on commit 7ebbba6

Please sign in to comment.