Skip to content

Commit

Permalink
testing completed!
Browse files Browse the repository at this point in the history
  • Loading branch information
jeffcatania-usds committed Feb 26, 2025
1 parent 6727a53 commit 6410fcd
Show file tree
Hide file tree
Showing 4 changed files with 59 additions and 44 deletions.
2 changes: 1 addition & 1 deletion app/app/javascript/adapters/ArgyleModalAdapter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ export default class ArgyleModalAdapter extends ModalAdapter {
async onError(err: LinkError) {
await trackUserAction("ArgyleError", err);
this.onExit()
}
}

async onClose() {
await trackUserAction("ArgyleCloseModal");
Expand Down
58 changes: 27 additions & 31 deletions app/spec/javascript/adapters/ArgyleModalAdapter.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ describe('ArgyleModalAdapter', () => {
})
})

describe('Account Connected (success event)', () => {
describe('event:onSucces', () => {
it('calls track user action', async() => {
await triggers.triggerAccountConnected()
expect(trackUserAction).toHaveBeenCalledTimes(2)
Expand All @@ -60,50 +60,46 @@ describe('ArgyleModalAdapter', () => {
expect(modalAdapterArgs.onSuccess).toHaveBeenCalled()
})
})
describe('onExit', () => {
it('triggers the provided onExit callback', async () => {
describe('event:onExit', () => {
it('triggers the provided onExit callback when modal closed', async () => {
await triggers.triggerClose()
expect(modalAdapterArgs.onExit).toHaveBeenCalled()
expect(trackUserAction).toHaveBeenCalledTimes(2)
expect(trackUserAction.mock.calls[1][0]).toBe('ArgyleCloseModal')
})
})
describe.skip('onEvent', () => {
it('logs screen_transition.LOGIN Event', async () => {
await triggers.triggerEvent("screen_transition", { "screenName": "LOGIN", selectedEmployerName: "ACME Inc", selectedPlatformName: "ADP" })
expect(trackUserAction).toHaveBeenCalledTimes(2)
expect(trackUserAction.mock.calls[1][0]).toBe('PinwheelShowLoginPage')
})
it('logs screen_transition.PROVIDER_CONFIRMATION event', async () => {
await triggers.triggerEvent("screen_transition", { "screenName": "PROVIDER_CONFIRMATION"})
expect(trackUserAction).toHaveBeenCalledTimes(2)
expect(trackUserAction.mock.calls[1][0]).toBe('PinwheelShowProviderConfirmationPage')
})
it('logs screen_transition.SEARCH_DEFAULT event', async () => {
await triggers.triggerEvent("screen_transition", { "screenName": "SEARCH_DEFAULT"})
it('triggers the provided onExit callback when modal throws error', async () => {
await triggers.triggerError()
expect(modalAdapterArgs.onExit).toHaveBeenCalled()
expect(trackUserAction).toHaveBeenCalledTimes(2)
expect(trackUserAction.mock.calls[1][0]).toBe('PinwheelShowDefaultProviderSearch')
expect(trackUserAction.mock.calls[1][0]).toBe('ArgyleError')
})
it('logs screen_transition.EXIT_CONFIRMATION event', async () => {
await triggers.triggerEvent("screen_transition", { "screenName": "EXIT_CONFIRMATION"})
})

describe('event:other', () => {
it('logs onAccountCreated Event', async () => {
await triggers.triggerAccountCreated()
expect(trackUserAction).toHaveBeenCalledTimes(2)
expect(trackUserAction.mock.calls[1][0]).toBe('PinwheelAttemptClose')
expect(trackUserAction.mock.calls[1][0]).toBe('ArgyleAccountCreated')
expect(trackUserAction.mock.calls[1][1]).toMatchSnapshot()
})
it('logs login_attempt event', async () => {
await triggers.triggerEvent("login_attempt")
it('logs onAccountRemoved Event', async () => {
await triggers.triggerAccountRemoved()
expect(trackUserAction).toHaveBeenCalledTimes(2)
expect(trackUserAction.mock.calls[1][0]).toBe('PinwheelAttemptLogin')
expect(trackUserAction.mock.calls[1][0]).toBe('ArgyleAccountRemoved')
expect(trackUserAction.mock.calls[1][1]).toMatchSnapshot()
})
it('logs error event', async () => {
await triggers.triggerEvent("error", { type: "error-type", "code": "code", "message":"default message"})
it('logs onAccountError Event', async () => {
await triggers.triggerAccountError()
expect(trackUserAction).toHaveBeenCalledTimes(2)
expect(trackUserAction.mock.calls[1][0]).toBe('PinwheelError')
expect(trackUserAction.mock.calls[1][1]['type']).toBe('error-type')
expect(trackUserAction.mock.calls[1][0]).toBe('ArgyleAccountError')
expect(trackUserAction.mock.calls[1][1]).toMatchSnapshot()
})
it('logs exit event', async () => {
await triggers.triggerEvent("exit")
it('refreshes token onTokenExpired', async () => {
const updateTokenMock = vi.fn()
await triggers.triggerTokenExpired(updateTokenMock)
expect(updateTokenMock).toHaveBeenCalledTimes(1)
expect(trackUserAction).toHaveBeenCalledTimes(2)
expect(trackUserAction.mock.calls[1][0]).toBe('PinwheelCloseModal')
expect(trackUserAction.mock.calls[1][0]).toBe('ArgyleTokenExpired')
})
})
})
Original file line number Diff line number Diff line change
@@ -1,5 +1,26 @@
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html

exports[`ArgyleModalAdapter > event:other > logs onAccountCreated Event 1`] = `
{
"accountId": "account-id",
"platformId": "platform-id",
}
`;

exports[`ArgyleModalAdapter > event:other > logs onAccountError Event 1`] = `
{
"accountId": "account-id",
"platformId": "platform-id",
}
`;

exports[`ArgyleModalAdapter > event:other > logs onAccountRemoved Event 1`] = `
{
"accountId": "account-id",
"platformId": "platform-id",
}
`;

exports[`ArgyleModalAdapter > open > calls track user action 1`] = `
[
"ApplicantSelectedEmployerOrPlatformItem",
Expand Down
22 changes: 10 additions & 12 deletions app/spec/javascript/fixtures/argyle.fixture.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,25 +2,23 @@ import { vi, describe, beforeEach, it, expect } from 'vitest'
import loadScript from "load-script";

export const mockArgyleAuthToken = { user: { user_token: 'test-token' }};
export const mockArgyleAccountData = { accountId: 'account-id', platformId: 'platform-id' }

const triggers = ({ onAccountConnected, onClose}) => ({
triggerAccountConnected: () => {
if (onAccountConnected) {
onAccountConnected({ accountId: 'account-id', platformId: 'platform-id' });
}
},
triggerClose: () => {
if(onClose) {
onClose()
}
}
const triggers = ({ onAccountConnected, onClose, onAccountCreated, onAccountError, onAccountRemoved, onTokenExpired, onError}) => ({
triggerAccountConnected: () => onAccountConnected && onAccountConnected(mockArgyleAccountData),
triggerClose: () => onClose && onClose(),
triggerAccountCreated: () => onAccountCreated && onAccountCreated(mockArgyleAccountData),
triggerAccountError: () => onAccountError && onAccountError(mockArgyleAccountData),
triggerAccountRemoved: () => onAccountRemoved && onAccountRemoved(mockArgyleAccountData),
triggerError: () => onError && onError(),
triggerTokenExpired: (cb) => onTokenExpired && onTokenExpired(cb)
})


export const mockArgyleModule = {
create: vi.fn((createParams) => {
return {
open: vi.fn((other) => triggers(createParams,other)),
open: vi.fn(() => triggers(createParams)),
}
})
}
Expand Down

0 comments on commit 6410fcd

Please sign in to comment.