@unite-us/app-create-referral 0.15.102 → 0.15.104
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/__testUtils__/mockData/mockPrograms.js +58 -0
- package/dist/__testUtils__/mockData/mockPrograms.js.map +1 -1
- package/dist/__testUtils__/mockData/utils.js +150 -90
- package/dist/__testUtils__/mockData/utils.js.map +1 -1
- package/dist/pages/builder/__tests__/NonSensitiveGroupedPrograms.test.js +11 -2
- package/dist/pages/builder/__tests__/NonSensitiveGroupedPrograms.test.js.map +1 -1
- package/dist/pages/builder/__tests__/buildGroupedReferrals.networkBug.test.js +78 -0
- package/dist/pages/builder/__tests__/buildGroupedReferrals.networkBug.test.js.map +1 -0
- package/dist/pages/builder/buildGroupedReferrals.js +14 -1
- package/dist/pages/builder/buildGroupedReferrals.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NonSensitiveGroupedPrograms.test.js","names":["screen","fireEvent","render","act","person","ReferralBuilder","mockAppReferralsProps","getSelectedPrograms","getSelectedUnlistedPrograms","useFeatureFlag","mockUseFeatureFlag","jsx","_jsx","jest","mock","fn","describe","it","filteredPrograms","sendingProviderIsCC","sendingProviderSensitive","receivingProviderIsCC","programInCurrentProvider","receivingProviderLicensed","receivingProviderSensitive","receivingReferrals","programsInSameNetwork","programsInSameProvider","isGrouped","programCount","serviceCount","length","appContextProviderProps","selectedPrograms","currentProvider","appState","currentEmployee","id","expect","getByText","toBeInTheDocument","click","getAllByRole","name","onAndOffPlatformPrograms","singleNetwork","queryByText","not","ccAndNonCCPrograms","licensedAndUnlicensedReceivingProviders","licensedProviderIsCC","beforeEach","mockImplementation","flag","results","networks","getAllByText"],"sources":["../../../../src/pages/builder/__tests__/NonSensitiveGroupedPrograms.test.js"],"sourcesContent":["import { screen, fireEvent } from \"@testing-library/react\";\nimport { render, act } from \"../../../__testUtils__/test-utils\";\nimport { person } from \"../../../__testUtils__/mockData/mockPeople\";\nimport ReferralBuilder from \"../ReferralBuilder\";\nimport mockAppReferralsProps from \"../../../__testUtils__/mockData/components/mockAppReferrals\";\nimport { getSelectedPrograms, getSelectedUnlistedPrograms } from \"../../../__testUtils__/mockData/utils\";\nimport { useFeatureFlag as mockUseFeatureFlag } from \"../../../utils/useFeatureFlag\";\n\njest.mock(\"../../../utils/useFeatureFlag\", () => ({\n useFeatureFlag: jest.fn(),\n}));\n\ndescribe('ReferralBuilder', () => {\n describe('should build referral(s) with non-sensitive receiving provider, grouped programs', () => {\n describe('receiving programs in the same network', () => {\n describe('receiving programs in the same provider', () => {\n describe('receiving programs in licensed provider', () => {\n describe('provider_type: provider', () => {\n describe('off-platform programs', () => {\n it ('should not group programs', async () => {\n const filteredPrograms = getSelectedPrograms({\n sendingProviderIsCC: false,\n sendingProviderSensitive: false,\n receivingProviderIsCC: false,\n programInCurrentProvider: false,\n receivingProviderLicensed: true,\n receivingProviderSensitive: false,\n receivingReferrals: false,\n programsInSameNetwork: true,\n programsInSameProvider: true,\n isGrouped: true,\n programCount: 2,\n serviceCount: 1,\n });\n if (filteredPrograms.length) {\n await act(async () => render(<ReferralBuilder />, {\n appContextProviderProps: {\n person,\n selectedPrograms: filteredPrograms,\n currentProvider: mockAppReferralsProps.appState.currentProvider,\n currentEmployee: { id: \"3f9cdc2c-7868-4b5e-8438-8104aefcca24\" },\n }\n }))\n }\n \n expect(screen.getByText(/Prepare Your Referrals/i)).toBeInTheDocument();\n expect(screen.getByText(/Referral 1: Benefits Eligibility Screening/i)).toBeInTheDocument();\n \n fireEvent.click(screen.getAllByRole('heading', { name: `Referral 2:` })[0]);\n expect(screen.getByText(/Referral 2: Benefits Eligibility Screening/i)).toBeInTheDocument();\n });\n });\n\n describe('one on-platform program, one off-platform program', () => {\n it ('should not group programs', async () => {\n const filteredPrograms = getSelectedPrograms({\n sendingProviderIsCC: false,\n sendingProviderSensitive: false,\n receivingProviderIsCC: false,\n programInCurrentProvider: false,\n receivingProviderLicensed: true,\n receivingProviderSensitive: false,\n onAndOffPlatformPrograms: true,\n programsInSameNetwork: true,\n isGrouped: true,\n programCount: 2,\n serviceCount: 1,\n });\n if (filteredPrograms.length) {\n await act(async () => render(<ReferralBuilder />, {\n appContextProviderProps: {\n person,\n selectedPrograms: filteredPrograms,\n currentProvider: mockAppReferralsProps.appState.currentProvider,\n currentEmployee: { id: \"3f9cdc2c-7868-4b5e-8438-8104aefcca24\" },\n }\n }))\n }\n \n expect(screen.getByText(/Prepare Your Referrals/i)).toBeInTheDocument();\n expect(screen.getByText(/Referral 1: Benefits Eligibility Screening/i)).toBeInTheDocument();\n \n fireEvent.click(screen.getAllByRole('heading', { name: `Referral 2:` })[0]);\n expect(screen.getByText(/Referral 2: Benefits Eligibility Screening/i)).toBeInTheDocument();\n });\n });\n });\n\n describe('provider_type: coordination_center', () => {\n describe('on-platform programs', () => {\n it ('should not group programs', async () => {\n const filteredPrograms = getSelectedPrograms({\n sendingProviderIsCC: false,\n sendingProviderSensitive: false,\n receivingProviderIsCC: true,\n programInCurrentProvider: false,\n receivingProviderLicensed: true,\n receivingProviderSensitive: false,\n receivingReferrals: true,\n programsInSameNetwork: true,\n programsInSameProvider: true,\n isGrouped: true,\n programCount: 2,\n serviceCount: 1,\n });\n if (filteredPrograms.length) {\n await act(async () => render(<ReferralBuilder />, {\n appContextProviderProps: {\n person,\n selectedPrograms: filteredPrograms,\n currentProvider: mockAppReferralsProps.appState.currentProvider,\n currentEmployee: mockAppReferralsProps.appState.currentEmployee\n }\n }))\n }\n \n expect(screen.getByText(/Prepare Your Referrals/i)).toBeInTheDocument();\n expect(screen.getByText(/Referral 1: Benefits Eligibility Screening/i)).toBeInTheDocument();\n \n fireEvent.click(screen.getAllByRole('heading', { name: `Referral 2:` })[0]);\n expect(screen.getByText(/Referral 2: Benefits Eligibility Screening/i)).toBeInTheDocument();\n });\n });\n\n describe('off-platform programs', () => {\n it ('should not group programs', async () => {\n const filteredPrograms = getSelectedPrograms({\n sendingProviderIsCC: false,\n sendingProviderSensitive: false,\n receivingProviderIsCC: true,\n programInCurrentProvider: false,\n receivingProviderLicensed: true,\n receivingProviderSensitive: false,\n receivingReferrals: false,\n programsInSameNetwork: true,\n programsInSameProvider: true,\n isGrouped: true,\n programCount: 2,\n serviceCount: 1,\n });\n if (filteredPrograms.length) {\n await act(async () => render(<ReferralBuilder />, {\n appContextProviderProps: {\n person,\n selectedPrograms: filteredPrograms,\n currentProvider: mockAppReferralsProps.appState.currentProvider,\n currentEmployee: { id: \"3f9cdc2c-7868-4b5e-8438-8104aefcca24\" },\n }\n }))\n }\n\n expect(screen.getByText(/Prepare Your Referrals/i)).toBeInTheDocument();\n expect(screen.getByText(/Referral 1: Benefits Eligibility Screening/i)).toBeInTheDocument();\n \n fireEvent.click(screen.getAllByRole('heading', { name: `Referral 2:` })[0]);\n expect(screen.getByText(/Referral 2: Benefits Eligibility Screening/i)).toBeInTheDocument();\n });\n });\n\n describe('one on-platform program, one off-platform program', () => {\n it ('should not group programs', async () => {\n const filteredPrograms = getSelectedPrograms({\n sendingProviderIsCC: false,\n sendingProviderSensitive: false,\n receivingProviderIsCC: true,\n programInCurrentProvider: false,\n receivingProviderLicensed: true,\n receivingProviderSensitive: false,\n onAndOffPlatformPrograms: true,\n programsInSameNetwork: true,\n programsInSameProvider: true,\n isGrouped: true,\n programCount: 2,\n serviceCount: 1,\n });\n if (filteredPrograms.length) {\n await act(async () => render(<ReferralBuilder />, {\n appContextProviderProps: {\n person,\n selectedPrograms: filteredPrograms,\n currentProvider: mockAppReferralsProps.appState.currentProvider,\n currentEmployee: { id: \"3f9cdc2c-7868-4b5e-8438-8104aefcca24\" },\n }\n }))\n }\n \n expect(screen.getByText(/Prepare Your Referrals/i)).toBeInTheDocument();\n expect(screen.getByText(/Referral 1: Benefits Eligibility Screening/i)).toBeInTheDocument();\n \n await act(async () => fireEvent.click(screen.getAllByRole('heading', { name: `Referral 2:` })[0]));\n expect(screen.getByText(/Referral 2: Benefits Eligibility Screening/i)).toBeInTheDocument();\n });\n });\n });\n });\n });\n\n describe('receiving programs not in the same provider', () => {\n describe('receiving programs in licensed providers', () => {\n describe('provider_type: provider', () => {\n describe('on-platform programs', () => {\n it ('should group programs', async () => {\n const filteredPrograms = getSelectedPrograms({\n sendingProviderIsCC: false,\n sendingProviderSensitive: false,\n receivingProviderIsCC: false,\n programInCurrentProvider: false,\n receivingProviderLicensed: true,\n receivingProviderSensitive: false,\n receivingReferrals: true,\n programsInSameNetwork: true,\n singleNetwork: true,\n programsInSameProvider: false,\n isGrouped: true,\n programCount: 2,\n serviceCount: 1,\n });\n if (filteredPrograms.length) {\n await act(async () => render(<ReferralBuilder />, {\n appContextProviderProps: {\n person,\n selectedPrograms: filteredPrograms,\n currentProvider: mockAppReferralsProps.appState.currentProvider,\n currentEmployee: { id: \"3f9cdc2c-7868-4b5e-8438-8104aefcca24\" },\n }\n }))\n }\n\n expect(screen.getByText(/Prepare Your Referrals/i)).toBeInTheDocument();\n expect(screen.getByText(/Referral 1: Benefits Eligibility Screening, Grouped/i)).toBeInTheDocument();\n expect(screen.queryByText(/Referral 2/i)).not.toBeInTheDocument();\n });\n });\n\n describe('off-platform programs', () => {\n it ('should group programs', async () => {\n const filteredPrograms = getSelectedPrograms({\n sendingProviderIsCC: false,\n sendingProviderSensitive: false,\n receivingProviderIsCC: false,\n programInCurrentProvider: false,\n receivingProviderLicensed: true,\n receivingProviderSensitive: false,\n receivingReferrals: false,\n programsInSameNetwork: true,\n singleNetwork: true,\n programsInSameProvider: false,\n isGrouped: true,\n programCount: 2,\n serviceCount: 1,\n });\n if (filteredPrograms.length) {\n await act(async () => render(<ReferralBuilder />, {\n appContextProviderProps: {\n person,\n selectedPrograms: filteredPrograms,\n currentProvider: mockAppReferralsProps.appState.currentProvider,\n currentEmployee: { id: \"3f9cdc2c-7868-4b5e-8438-8104aefcca24\" },\n }\n }))\n }\n\n expect(screen.getByText(/Prepare Your Referrals/i)).toBeInTheDocument();\n expect(screen.getByText(/Referral 1: Benefits Eligibility Screening, Grouped/i)).toBeInTheDocument();\n expect(screen.queryByText(/Referral 2/i)).not.toBeInTheDocument();\n });\n });\n\n describe('one on-platform program, one off-platform program', () => {\n it ('should not group programs', async () => {\n const filteredPrograms = getSelectedPrograms({\n sendingProviderIsCC: false,\n sendingProviderSensitive: false,\n receivingProviderIsCC: false,\n programInCurrentProvider: false,\n receivingProviderLicensed: true,\n receivingProviderSensitive: false,\n onAndOffPlatformPrograms: true,\n programsInSameNetwork: true,\n programsInSameProvider: false,\n isGrouped: true,\n programCount: 2,\n serviceCount: 1,\n });\n if (filteredPrograms.length) {\n await act(async () => render(<ReferralBuilder />, {\n appContextProviderProps: {\n person,\n selectedPrograms: filteredPrograms,\n currentProvider: mockAppReferralsProps.appState.currentProvider,\n currentEmployee: { id: \"3f9cdc2c-7868-4b5e-8438-8104aefcca24\" },\n }\n }))\n }\n \n expect(screen.getByText(/Prepare Your Referrals/i)).toBeInTheDocument();\n expect(screen.getByText(/Referral 1: Benefits Eligibility Screening/i)).toBeInTheDocument();\n \n await act(async () => fireEvent.click(screen.getAllByRole('heading', { name: `Referral 2:` })[0]));\n expect(screen.getByText(/Referral 2: Benefits Eligibility Screening/i)).toBeInTheDocument();\n });\n });\n });\n\n describe('provider_type: coordination_center', () => {\n describe('on-platform programs', () => {\n it ('should not group programs', async () => {\n const filteredPrograms = getSelectedPrograms({\n sendingProviderIsCC: false,\n sendingProviderSensitive: false,\n receivingProviderIsCC: true,\n programInCurrentProvider: false,\n receivingProviderLicensed: true,\n receivingProviderSensitive: false,\n receivingReferrals: true,\n programsInSameNetwork: true,\n programsInSameProvider: false,\n isGrouped: true,\n programCount: 2,\n serviceCount: 1,\n });\n if (filteredPrograms.length) {\n await act(async () => render(<ReferralBuilder />, {\n appContextProviderProps: {\n person,\n selectedPrograms: filteredPrograms,\n currentProvider: mockAppReferralsProps.appState.currentProvider,\n currentEmployee: { id: \"3f9cdc2c-7868-4b5e-8438-8104aefcca24\" },\n }\n }))\n }\n \n expect(screen.getByText(/Prepare Your Referrals/i)).toBeInTheDocument();\n expect(screen.getByText(/Referral 1: Benefits Eligibility Screening/i)).toBeInTheDocument();\n \n await act(async () => fireEvent.click(screen.getAllByRole('heading', { name: `Referral 2:` })[0]));\n expect(screen.getByText(/Referral 2: Benefits Eligibility Screening/i)).toBeInTheDocument();\n });\n });\n\n describe('off-platform programs', () => {\n it ('should not group programs', async () => {\n const filteredPrograms = getSelectedPrograms({\n sendingProviderIsCC: false,\n sendingProviderSensitive: false,\n receivingProviderIsCC: true,\n programInCurrentProvider: false,\n receivingProviderLicensed: true,\n receivingProviderSensitive: false,\n receivingReferrals: false,\n programsInSameNetwork: true,\n programsInSameProvider: false,\n isGrouped: true,\n programCount: 2,\n serviceCount: 1,\n });\n if (filteredPrograms.length) {\n await act(async () => render(<ReferralBuilder />, {\n appContextProviderProps: {\n person,\n selectedPrograms: filteredPrograms,\n currentProvider: mockAppReferralsProps.appState.currentProvider,\n currentEmployee: { id: \"3f9cdc2c-7868-4b5e-8438-8104aefcca24\" },\n }\n }))\n }\n\n expect(screen.getByText(/Prepare Your Referrals/i)).toBeInTheDocument();\n expect(screen.getByText(/Referral 1: Benefits Eligibility Screening/i)).toBeInTheDocument();\n \n await act(async () => fireEvent.click(screen.getAllByRole('heading', { name: `Referral 2:` })[0]));\n expect(screen.getByText(/Referral 2: Benefits Eligibility Screening/i)).toBeInTheDocument();\n });\n });\n\n describe('one on-platform program, one off-platform program', () => {\n it ('should not group programs', async () => {\n const filteredPrograms = getSelectedPrograms({\n sendingProviderIsCC: false,\n sendingProviderSensitive: false,\n receivingProviderIsCC: true,\n programInCurrentProvider: false,\n receivingProviderLicensed: true,\n receivingProviderSensitive: false,\n onAndOffPlatformPrograms: true,\n programsInSameNetwork: true,\n programsInSameProvider: false,\n isGrouped: true,\n programCount: 2,\n serviceCount: 1,\n });\n if (filteredPrograms.length) {\n await act(async () => render(<ReferralBuilder />, {\n appContextProviderProps: {\n person,\n selectedPrograms: filteredPrograms,\n currentProvider: mockAppReferralsProps.appState.currentProvider,\n currentEmployee: { id: \"3f9cdc2c-7868-4b5e-8438-8104aefcca24\" },\n }\n }))\n }\n \n expect(screen.getByText(/Prepare Your Referrals/i)).toBeInTheDocument();\n expect(screen.getByText(/Referral 1: Benefits Eligibility Screening/i)).toBeInTheDocument();\n \n await act(async () => fireEvent.click(screen.getAllByRole('heading', { name: `Referral 2:` })[0]));\n expect(screen.getByText(/Referral 2: Benefits Eligibility Screening/i)).toBeInTheDocument();\n });\n });\n });\n\n describe('one provider_type: provider, one provider_type: coordination_center', () => {\n describe('on-platform programs', () => {\n it ('should not group programs', async () => {\n const filteredPrograms = getSelectedPrograms({\n sendingProviderIsCC: false,\n sendingProviderSensitive: false,\n programInCurrentProvider: false,\n receivingProviderLicensed: true,\n receivingProviderSensitive: false,\n receivingReferrals: true,\n ccAndNonCCPrograms: true,\n programsInSameNetwork: true,\n programsInSameProvider: false,\n isGrouped: true,\n programCount: 2,\n serviceCount: 1,\n });\n if (filteredPrograms.length) {\n await act(async () => render(<ReferralBuilder />, {\n appContextProviderProps: {\n person,\n selectedPrograms: filteredPrograms,\n currentProvider: mockAppReferralsProps.appState.currentProvider,\n currentEmployee: { id: \"3f9cdc2c-7868-4b5e-8438-8104aefcca24\" },\n }\n }))\n }\n \n expect(screen.getByText(/Prepare Your Referrals/i)).toBeInTheDocument();\n expect(screen.getByText(/Referral 1: Benefits Eligibility Screening/i)).toBeInTheDocument();\n \n await act(async () => fireEvent.click(screen.getAllByRole('heading', { name: `Referral 2:` })[0]));\n expect(screen.getByText(/Referral 2: Benefits Eligibility Screening/i)).toBeInTheDocument();\n });\n });\n });\n });\n\n describe('receiving programs in unlicensed providers, provider_type: provider, off-platform programs', () => {\n it ('should group programs', async () => {\n const filteredPrograms = getSelectedPrograms({\n sendingProviderIsCC: false,\n sendingProviderSensitive: false,\n receivingProviderIsCC: false,\n programInCurrentProvider: false,\n receivingProviderLicensed: false,\n receivingProviderSensitive: false,\n receivingReferrals: false,\n programsInSameNetwork: true,\n programsInSameProvider: false,\n isGrouped: true,\n programCount: 2,\n serviceCount: 1,\n });\n\n if (filteredPrograms.length) {\n await act(async () => render(<ReferralBuilder />, {\n appContextProviderProps: {\n person,\n selectedPrograms: filteredPrograms,\n currentProvider: mockAppReferralsProps.appState.currentProvider,\n currentEmployee: { id: \"3f9cdc2c-7868-4b5e-8438-8104aefcca24\" },\n }\n }))\n }\n\n expect(screen.getByText(/Prepare Your Referrals/i)).toBeInTheDocument();\n expect(screen.getByText(/Referral 1: Benefits Eligibility Screening, Grouped/i)).toBeInTheDocument();\n expect(screen.queryByText(/Referral 2/i)).not.toBeInTheDocument();\n });\n });\n\n describe('one receiving program in licensed provider, one receiving program in unlicensed provider', () => {\n describe('both provider_types: provider', () => {\n describe('off-platform programs', () => {\n it ('should not group programs', async () => {\n const filteredPrograms = getSelectedPrograms({\n sendingProviderIsCC: false,\n sendingProviderSensitive: false,\n programInCurrentProvider: false,\n licensedAndUnlicensedReceivingProviders: true,\n receivingProviderSensitive: false,\n receivingReferrals: false,\n singleNetwork: true,\n programsInSameNetwork: true,\n programsInSameProvider: false,\n isGrouped: true,\n programCount: 2,\n serviceCount: 1,\n });\n if (filteredPrograms.length) {\n await act(async () => render(<ReferralBuilder />, {\n appContextProviderProps: {\n person,\n selectedPrograms: filteredPrograms,\n currentProvider: mockAppReferralsProps.appState.currentProvider,\n currentEmployee: { id: \"3f9cdc2c-7868-4b5e-8438-8104aefcca24\" },\n }\n }))\n }\n\n expect(screen.getByText(/Prepare Your Referrals/i)).toBeInTheDocument();\n expect(screen.getByText(/Referral 1: Benefits Eligibility Screening, Grouped/i)).toBeInTheDocument();\n expect(screen.queryByText(/Referral 2/i)).not.toBeInTheDocument();\n });\n });\n\n describe('one off-platform program, one on-platform program', () => {\n it ('should not group programs', async () => {\n const filteredPrograms = getSelectedPrograms({\n sendingProviderIsCC: false,\n sendingProviderSensitive: false,\n programInCurrentProvider: false,\n licensedAndUnlicensedReceivingProviders: true,\n receivingProviderSensitive: false,\n receivingReferrals: false,\n onAndOffPlatformPrograms: true,\n programsInSameNetwork: true,\n programsInSameProvider: false,\n isGrouped: true,\n programCount: 2,\n serviceCount: 1,\n });\n if (filteredPrograms.length) {\n await act(async () => render(<ReferralBuilder />, {\n appContextProviderProps: {\n person,\n selectedPrograms: filteredPrograms,\n currentProvider: mockAppReferralsProps.appState.currentProvider,\n currentEmployee: { id: \"3f9cdc2c-7868-4b5e-8438-8104aefcca24\" },\n }\n }))\n }\n\n expect(screen.getByText(/Prepare Your Referrals/i)).toBeInTheDocument();\n expect(screen.getByText(/Referral 1: Benefits Eligibility Screening/i)).toBeInTheDocument();\n \n await act(async () => fireEvent.click(screen.getAllByRole('heading', { name: `Referral 2:` })[0]));\n expect(screen.getByText(/Referral 2: Benefits Eligibility Screening/i)).toBeInTheDocument();\n });\n });\n });\n\n describe('unlicensed provider_type: provider, licensed provider_type: coordination_center', () => {\n describe('off-platform programs', () => {\n it ('should not group programs', async () => {\n const filteredPrograms = getSelectedPrograms({\n sendingProviderIsCC: false,\n sendingProviderSensitive: false,\n licensedProviderIsCC: true,\n ccAndNonCCPrograms: true,\n programInCurrentProvider: false,\n licensedAndUnlicensedReceivingProviders: true,\n receivingProviderSensitive: false,\n receivingReferrals: false,\n programsInSameNetwork: true,\n programsInSameProvider: false,\n isGrouped: true,\n programCount: 2,\n serviceCount: 1,\n });\n if (filteredPrograms.length) {\n await act(async () => render(<ReferralBuilder />, {\n appContextProviderProps: {\n person,\n selectedPrograms: filteredPrograms,\n currentProvider: mockAppReferralsProps.appState.currentProvider,\n currentEmployee: { id: \"3f9cdc2c-7868-4b5e-8438-8104aefcca24\" },\n }\n }))\n }\n\n expect(screen.getByText(/Prepare Your Referrals/i)).toBeInTheDocument();\n expect(screen.getByText(/Referral 1: Benefits Eligibility Screening/i)).toBeInTheDocument();\n \n await act(async () => fireEvent.click(screen.getAllByRole('heading', { name: `Referral 2:` })[0]));\n expect(screen.getByText(/Referral 2: Benefits Eligibility Screening/i)).toBeInTheDocument();\n });\n });\n\n describe('one off-platform program, one on-platform program', () => {\n it ('should not group programs', async () => {\n const filteredPrograms = getSelectedPrograms({\n sendingProviderIsCC: false,\n sendingProviderSensitive: false,\n licensedProviderIsCC: true,\n ccAndNonCCPrograms: true,\n programInCurrentProvider: false,\n licensedAndUnlicensedReceivingProviders: true,\n receivingProviderSensitive: false,\n receivingReferrals: false,\n programsInSameNetwork: true,\n onAndOffPlatformPrograms: true,\n programsInSameProvider: false,\n isGrouped: true,\n programCount: 2,\n serviceCount: 1,\n });\n if (filteredPrograms.length) {\n await act(async () => render(<ReferralBuilder />, {\n appContextProviderProps: {\n person,\n selectedPrograms: filteredPrograms,\n currentProvider: mockAppReferralsProps.appState.currentProvider,\n currentEmployee: { id: \"3f9cdc2c-7868-4b5e-8438-8104aefcca24\" },\n }\n }))\n }\n\n expect(screen.getByText(/Prepare Your Referrals/i)).toBeInTheDocument();\n expect(screen.getByText(/Referral 1: Benefits Eligibility Screening/i)).toBeInTheDocument();\n \n await act(async () => fireEvent.click(screen.getAllByRole('heading', { name: `Referral 2:` })[0]));\n expect(screen.getByText(/Referral 2: Benefits Eligibility Screening/i)).toBeInTheDocument();\n });\n });\n });\n });\n });\n });\n\n describe('receiving programs not in the same network or provider', () => {\n describe('on-platform receiving programs are in licensed provider, provider_type: provider', () => {\n it ('should not group programs', async () => {\n const filteredPrograms = getSelectedPrograms({\n sendingProviderIsCC: false,\n sendingProviderSensitive: false,\n receivingProviderIsCC: false,\n programInCurrentProvider: false,\n receivingProviderLicensed: true,\n receivingProviderSensitive: false,\n receivingReferrals: true,\n programsInSameNetwork: false,\n programsInSameProvider: false,\n isGrouped: true,\n programCount: 2,\n serviceCount: 1,\n });\n if (filteredPrograms.length) {\n await act(async () => render(<ReferralBuilder />, {\n appContextProviderProps: {\n person,\n selectedPrograms: filteredPrograms,\n currentProvider: mockAppReferralsProps.appState.currentProvider,\n currentEmployee: mockAppReferralsProps.appState.currentEmployee\n }\n }))\n }\n\n expect(screen.getByText(/Prepare Your Referrals/i)).toBeInTheDocument();\n expect(screen.getByText(/Referral 1: Benefits Eligibility Screening/i)).toBeInTheDocument();\n\n fireEvent.click(screen.getAllByRole('heading', { name: `Referral 2:` })[0]);\n expect(screen.getByText(/Referral 2: Benefits Eligibility Screening/i)).toBeInTheDocument();\n });\n })\n });\n });\n\n describe('grouping unlisted programs', () => {\n beforeEach(() => {\n mockUseFeatureFlag.mockImplementation((flag) => flag === 'hint542SupersetUnlistedPrograms');\n });\n\n describe('two unlisted programs different service', () => {\n it ('it should display two referrals with one unlisted program on each referral', async () => {\n const filteredPrograms = getSelectedUnlistedPrograms({\n programCount: 1,\n results: 2,\n });\n\n if (filteredPrograms.length) {\n await act(async () => render(<ReferralBuilder />, {\n appContextProviderProps: {\n person,\n selectedPrograms: filteredPrograms,\n currentProvider: {\n id: 'p1', \n networks: [{ id: '4abb98dd-6e42-4890-a439-daa1a89e3aa3' }]\n },\n currentEmployee: { id: \"3f9cdc2c-7868-4b5e-8438-8104aefcca24\" },\n }\n }))\n\n expect(screen.getByText(/Prepare Your Referrals/i)).toBeInTheDocument();\n expect(screen.getAllByText(/Referral 1/i)[0]).toBeInTheDocument();\n expect(screen.getByText(/Network selection/i)).toBeInTheDocument();\n\n await act(async () => fireEvent.click(screen.getAllByRole('heading', { name: `Referral 2:` })[0]));\n expect(screen.getAllByText(/Referral 2/i)[0]).toBeInTheDocument();\n expect(screen.getByText(/Network selection/i)).toBeInTheDocument();\n }\n });\n });\n\n describe('two unlisted programs same service', () => {\n it ('it should display one referral with two unlisted programs', async () => {\n const filteredPrograms = getSelectedUnlistedPrograms({\n programCount: 2,\n });\n\n if (filteredPrograms.length) {\n await act(async () => render(<ReferralBuilder />, {\n appContextProviderProps: {\n person,\n selectedPrograms: filteredPrograms,\n currentProvider: {\n id: 'p1', \n networks: [{ id: '4abb98dd-6e42-4890-a439-daa1a89e3aa3' }]\n },\n currentEmployee: { id: \"3f9cdc2c-7868-4b5e-8438-8104aefcca24\" },\n }\n }))\n\n expect(screen.getByText(/Prepare Your Referrals/i)).toBeInTheDocument();\n expect(screen.getAllByText(/Referral 1/i)[0]).toBeInTheDocument();\n expect(screen.getByText(/Network selection/i)).toBeInTheDocument();\n expect(screen.queryByText(/Referral 2/i)).not.toBeInTheDocument();\n }\n });\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"NonSensitiveGroupedPrograms.test.js","names":["screen","fireEvent","render","act","person","ReferralBuilder","mockAppReferralsProps","getSelectedPrograms","getSelectedUnlistedPrograms","useFeatureFlag","mockUseFeatureFlag","jsx","_jsx","jest","mock","fn","describe","it","filteredPrograms","sendingProviderIsCC","sendingProviderSensitive","receivingProviderIsCC","programInCurrentProvider","receivingProviderLicensed","receivingProviderSensitive","receivingReferrals","programsInSameNetwork","programsInSameProvider","isGrouped","programCount","serviceCount","length","appContextProviderProps","selectedPrograms","currentProvider","appState","currentEmployee","id","expect","getByText","toBeInTheDocument","click","getAllByRole","name","onAndOffPlatformPrograms","singleNetwork","queryByText","not","ccAndNonCCPrograms","licensedAndUnlicensedReceivingProviders","toEqual","licensedProviderIsCC","beforeEach","mockImplementation","flag","results","networks","getAllByText"],"sources":["../../../../src/pages/builder/__tests__/NonSensitiveGroupedPrograms.test.js"],"sourcesContent":["import { screen, fireEvent } from \"@testing-library/react\";\nimport { render, act } from \"../../../__testUtils__/test-utils\";\nimport { person } from \"../../../__testUtils__/mockData/mockPeople\";\nimport ReferralBuilder from \"../ReferralBuilder\";\nimport mockAppReferralsProps from \"../../../__testUtils__/mockData/components/mockAppReferrals\";\nimport { getSelectedPrograms, getSelectedUnlistedPrograms } from \"../../../__testUtils__/mockData/utils\";\nimport { useFeatureFlag as mockUseFeatureFlag } from \"../../../utils/useFeatureFlag\";\n\njest.mock(\"../../../utils/useFeatureFlag\", () => ({\n useFeatureFlag: jest.fn(),\n}));\n\ndescribe('ReferralBuilder', () => {\n describe('should build referral(s) with non-sensitive receiving provider, grouped programs', () => {\n describe('receiving programs in the same network', () => {\n describe('receiving programs in the same provider', () => {\n describe('receiving programs in licensed provider', () => {\n describe('provider_type: provider', () => {\n describe('off-platform programs', () => {\n it ('should not group programs', async () => {\n const filteredPrograms = getSelectedPrograms({\n sendingProviderIsCC: false,\n sendingProviderSensitive: false,\n receivingProviderIsCC: false,\n programInCurrentProvider: false,\n receivingProviderLicensed: true,\n receivingProviderSensitive: false,\n receivingReferrals: false,\n programsInSameNetwork: true,\n programsInSameProvider: true,\n isGrouped: true,\n programCount: 2,\n serviceCount: 1,\n });\n if (filteredPrograms.length) {\n await act(async () => render(<ReferralBuilder />, {\n appContextProviderProps: {\n person,\n selectedPrograms: filteredPrograms,\n currentProvider: mockAppReferralsProps.appState.currentProvider,\n currentEmployee: { id: \"3f9cdc2c-7868-4b5e-8438-8104aefcca24\" },\n }\n }))\n }\n \n expect(screen.getByText(/Prepare Your Referrals/i)).toBeInTheDocument();\n expect(screen.getByText(/Referral 1: Benefits Eligibility Screening/i)).toBeInTheDocument();\n \n fireEvent.click(screen.getAllByRole('heading', { name: `Referral 2:` })[0]);\n expect(screen.getByText(/Referral 2: Benefits Eligibility Screening/i)).toBeInTheDocument();\n });\n });\n\n describe('one on-platform program, one off-platform program', () => {\n it ('should not group programs', async () => {\n const filteredPrograms = getSelectedPrograms({\n sendingProviderIsCC: false,\n sendingProviderSensitive: false,\n receivingProviderIsCC: false,\n programInCurrentProvider: false,\n receivingProviderLicensed: true,\n receivingProviderSensitive: false,\n onAndOffPlatformPrograms: true,\n programsInSameNetwork: true,\n isGrouped: true,\n programCount: 2,\n serviceCount: 1,\n });\n if (filteredPrograms.length) {\n await act(async () => render(<ReferralBuilder />, {\n appContextProviderProps: {\n person,\n selectedPrograms: filteredPrograms,\n currentProvider: mockAppReferralsProps.appState.currentProvider,\n currentEmployee: { id: \"3f9cdc2c-7868-4b5e-8438-8104aefcca24\" },\n }\n }))\n }\n \n expect(screen.getByText(/Prepare Your Referrals/i)).toBeInTheDocument();\n expect(screen.getByText(/Referral 1: Benefits Eligibility Screening/i)).toBeInTheDocument();\n \n fireEvent.click(screen.getAllByRole('heading', { name: `Referral 2:` })[0]);\n expect(screen.getByText(/Referral 2: Benefits Eligibility Screening/i)).toBeInTheDocument();\n });\n });\n });\n\n describe('provider_type: coordination_center', () => {\n describe('on-platform programs', () => {\n it ('should not group programs', async () => {\n const filteredPrograms = getSelectedPrograms({\n sendingProviderIsCC: false,\n sendingProviderSensitive: false,\n receivingProviderIsCC: true,\n programInCurrentProvider: false,\n receivingProviderLicensed: true,\n receivingProviderSensitive: false,\n receivingReferrals: true,\n programsInSameNetwork: true,\n programsInSameProvider: true,\n isGrouped: true,\n programCount: 2,\n serviceCount: 1,\n });\n if (filteredPrograms.length) {\n await act(async () => render(<ReferralBuilder />, {\n appContextProviderProps: {\n person,\n selectedPrograms: filteredPrograms,\n currentProvider: mockAppReferralsProps.appState.currentProvider,\n currentEmployee: mockAppReferralsProps.appState.currentEmployee\n }\n }))\n }\n \n expect(screen.getByText(/Prepare Your Referrals/i)).toBeInTheDocument();\n expect(screen.getByText(/Referral 1: Benefits Eligibility Screening/i)).toBeInTheDocument();\n \n fireEvent.click(screen.getAllByRole('heading', { name: `Referral 2:` })[0]);\n expect(screen.getByText(/Referral 2: Benefits Eligibility Screening/i)).toBeInTheDocument();\n });\n });\n\n describe('off-platform programs', () => {\n it ('should not group programs', async () => {\n const filteredPrograms = getSelectedPrograms({\n sendingProviderIsCC: false,\n sendingProviderSensitive: false,\n receivingProviderIsCC: true,\n programInCurrentProvider: false,\n receivingProviderLicensed: true,\n receivingProviderSensitive: false,\n receivingReferrals: false,\n programsInSameNetwork: true,\n programsInSameProvider: true,\n isGrouped: true,\n programCount: 2,\n serviceCount: 1,\n });\n if (filteredPrograms.length) {\n await act(async () => render(<ReferralBuilder />, {\n appContextProviderProps: {\n person,\n selectedPrograms: filteredPrograms,\n currentProvider: mockAppReferralsProps.appState.currentProvider,\n currentEmployee: { id: \"3f9cdc2c-7868-4b5e-8438-8104aefcca24\" },\n }\n }))\n }\n\n expect(screen.getByText(/Prepare Your Referrals/i)).toBeInTheDocument();\n expect(screen.getByText(/Referral 1: Benefits Eligibility Screening/i)).toBeInTheDocument();\n \n fireEvent.click(screen.getAllByRole('heading', { name: `Referral 2:` })[0]);\n expect(screen.getByText(/Referral 2: Benefits Eligibility Screening/i)).toBeInTheDocument();\n });\n });\n\n describe('one on-platform program, one off-platform program', () => {\n it ('should not group programs', async () => {\n const filteredPrograms = getSelectedPrograms({\n sendingProviderIsCC: false,\n sendingProviderSensitive: false,\n receivingProviderIsCC: true,\n programInCurrentProvider: false,\n receivingProviderLicensed: true,\n receivingProviderSensitive: false,\n onAndOffPlatformPrograms: true,\n programsInSameNetwork: true,\n programsInSameProvider: true,\n isGrouped: true,\n programCount: 2,\n serviceCount: 1,\n });\n if (filteredPrograms.length) {\n await act(async () => render(<ReferralBuilder />, {\n appContextProviderProps: {\n person,\n selectedPrograms: filteredPrograms,\n currentProvider: mockAppReferralsProps.appState.currentProvider,\n currentEmployee: { id: \"3f9cdc2c-7868-4b5e-8438-8104aefcca24\" },\n }\n }))\n }\n \n expect(screen.getByText(/Prepare Your Referrals/i)).toBeInTheDocument();\n expect(screen.getByText(/Referral 1: Benefits Eligibility Screening/i)).toBeInTheDocument();\n \n await act(async () => fireEvent.click(screen.getAllByRole('heading', { name: `Referral 2:` })[0]));\n expect(screen.getByText(/Referral 2: Benefits Eligibility Screening/i)).toBeInTheDocument();\n });\n });\n });\n });\n });\n\n describe('receiving programs not in the same provider', () => {\n describe('receiving programs in licensed providers', () => {\n describe('provider_type: provider', () => {\n describe('on-platform programs', () => {\n it ('should group programs', async () => {\n const filteredPrograms = getSelectedPrograms({\n sendingProviderIsCC: false,\n sendingProviderSensitive: false,\n receivingProviderIsCC: false,\n programInCurrentProvider: false,\n receivingProviderLicensed: true,\n receivingProviderSensitive: false,\n receivingReferrals: true,\n programsInSameNetwork: true,\n singleNetwork: true,\n programsInSameProvider: false,\n isGrouped: true,\n programCount: 2,\n serviceCount: 1,\n });\n if (filteredPrograms.length) {\n await act(async () => render(<ReferralBuilder />, {\n appContextProviderProps: {\n person,\n selectedPrograms: filteredPrograms,\n currentProvider: mockAppReferralsProps.appState.currentProvider,\n currentEmployee: { id: \"3f9cdc2c-7868-4b5e-8438-8104aefcca24\" },\n }\n }))\n }\n\n expect(screen.getByText(/Prepare Your Referrals/i)).toBeInTheDocument();\n expect(screen.getByText(/Referral 1: Benefits Eligibility Screening, Grouped/i)).toBeInTheDocument();\n expect(screen.queryByText(/Referral 2/i)).not.toBeInTheDocument();\n });\n });\n\n describe('off-platform programs', () => {\n it ('should group programs', async () => {\n const filteredPrograms = getSelectedPrograms({\n sendingProviderIsCC: false,\n sendingProviderSensitive: false,\n receivingProviderIsCC: false,\n programInCurrentProvider: false,\n receivingProviderLicensed: true,\n receivingProviderSensitive: false,\n receivingReferrals: false,\n programsInSameNetwork: true,\n singleNetwork: true,\n programsInSameProvider: false,\n isGrouped: true,\n programCount: 2,\n serviceCount: 1,\n });\n if (filteredPrograms.length) {\n await act(async () => render(<ReferralBuilder />, {\n appContextProviderProps: {\n person,\n selectedPrograms: filteredPrograms,\n currentProvider: mockAppReferralsProps.appState.currentProvider,\n currentEmployee: { id: \"3f9cdc2c-7868-4b5e-8438-8104aefcca24\" },\n }\n }))\n }\n\n expect(screen.getByText(/Prepare Your Referrals/i)).toBeInTheDocument();\n expect(screen.getByText(/Referral 1: Benefits Eligibility Screening, Grouped/i)).toBeInTheDocument();\n expect(screen.queryByText(/Referral 2/i)).not.toBeInTheDocument();\n });\n });\n\n describe('one on-platform program, one off-platform program', () => {\n it ('should not group programs', async () => {\n const filteredPrograms = getSelectedPrograms({\n sendingProviderIsCC: false,\n sendingProviderSensitive: false,\n receivingProviderIsCC: false,\n programInCurrentProvider: false,\n receivingProviderLicensed: true,\n receivingProviderSensitive: false,\n onAndOffPlatformPrograms: true,\n programsInSameNetwork: true,\n programsInSameProvider: false,\n isGrouped: true,\n programCount: 2,\n serviceCount: 1,\n });\n if (filteredPrograms.length) {\n await act(async () => render(<ReferralBuilder />, {\n appContextProviderProps: {\n person,\n selectedPrograms: filteredPrograms,\n currentProvider: mockAppReferralsProps.appState.currentProvider,\n currentEmployee: { id: \"3f9cdc2c-7868-4b5e-8438-8104aefcca24\" },\n }\n }))\n }\n \n expect(screen.getByText(/Prepare Your Referrals/i)).toBeInTheDocument();\n expect(screen.getByText(/Referral 1: Benefits Eligibility Screening/i)).toBeInTheDocument();\n \n await act(async () => fireEvent.click(screen.getAllByRole('heading', { name: `Referral 2:` })[0]));\n expect(screen.getByText(/Referral 2: Benefits Eligibility Screening/i)).toBeInTheDocument();\n });\n });\n });\n\n describe('provider_type: coordination_center', () => {\n describe('on-platform programs', () => {\n it ('should not group programs', async () => {\n const filteredPrograms = getSelectedPrograms({\n sendingProviderIsCC: false,\n sendingProviderSensitive: false,\n receivingProviderIsCC: true,\n programInCurrentProvider: false,\n receivingProviderLicensed: true,\n receivingProviderSensitive: false,\n receivingReferrals: true,\n programsInSameNetwork: true,\n programsInSameProvider: false,\n isGrouped: true,\n programCount: 2,\n serviceCount: 1,\n });\n if (filteredPrograms.length) {\n await act(async () => render(<ReferralBuilder />, {\n appContextProviderProps: {\n person,\n selectedPrograms: filteredPrograms,\n currentProvider: mockAppReferralsProps.appState.currentProvider,\n currentEmployee: { id: \"3f9cdc2c-7868-4b5e-8438-8104aefcca24\" },\n }\n }))\n }\n \n expect(screen.getByText(/Prepare Your Referrals/i)).toBeInTheDocument();\n expect(screen.getByText(/Referral 1: Benefits Eligibility Screening/i)).toBeInTheDocument();\n \n await act(async () => fireEvent.click(screen.getAllByRole('heading', { name: `Referral 2:` })[0]));\n expect(screen.getByText(/Referral 2: Benefits Eligibility Screening/i)).toBeInTheDocument();\n });\n });\n\n describe('off-platform programs', () => {\n it ('should not group programs', async () => {\n const filteredPrograms = getSelectedPrograms({\n sendingProviderIsCC: false,\n sendingProviderSensitive: false,\n receivingProviderIsCC: true,\n programInCurrentProvider: false,\n receivingProviderLicensed: true,\n receivingProviderSensitive: false,\n receivingReferrals: false,\n programsInSameNetwork: true,\n programsInSameProvider: false,\n isGrouped: true,\n programCount: 2,\n serviceCount: 1,\n });\n if (filteredPrograms.length) {\n await act(async () => render(<ReferralBuilder />, {\n appContextProviderProps: {\n person,\n selectedPrograms: filteredPrograms,\n currentProvider: mockAppReferralsProps.appState.currentProvider,\n currentEmployee: { id: \"3f9cdc2c-7868-4b5e-8438-8104aefcca24\" },\n }\n }))\n }\n\n expect(screen.getByText(/Prepare Your Referrals/i)).toBeInTheDocument();\n expect(screen.getByText(/Referral 1: Benefits Eligibility Screening/i)).toBeInTheDocument();\n \n await act(async () => fireEvent.click(screen.getAllByRole('heading', { name: `Referral 2:` })[0]));\n expect(screen.getByText(/Referral 2: Benefits Eligibility Screening/i)).toBeInTheDocument();\n });\n });\n\n describe('one on-platform program, one off-platform program', () => {\n it ('should not group programs', async () => {\n const filteredPrograms = getSelectedPrograms({\n sendingProviderIsCC: false,\n sendingProviderSensitive: false,\n receivingProviderIsCC: true,\n programInCurrentProvider: false,\n receivingProviderLicensed: true,\n receivingProviderSensitive: false,\n onAndOffPlatformPrograms: true,\n programsInSameNetwork: true,\n programsInSameProvider: false,\n isGrouped: true,\n programCount: 2,\n serviceCount: 1,\n });\n if (filteredPrograms.length) {\n await act(async () => render(<ReferralBuilder />, {\n appContextProviderProps: {\n person,\n selectedPrograms: filteredPrograms,\n currentProvider: mockAppReferralsProps.appState.currentProvider,\n currentEmployee: { id: \"3f9cdc2c-7868-4b5e-8438-8104aefcca24\" },\n }\n }))\n }\n \n expect(screen.getByText(/Prepare Your Referrals/i)).toBeInTheDocument();\n expect(screen.getByText(/Referral 1: Benefits Eligibility Screening/i)).toBeInTheDocument();\n \n await act(async () => fireEvent.click(screen.getAllByRole('heading', { name: `Referral 2:` })[0]));\n expect(screen.getByText(/Referral 2: Benefits Eligibility Screening/i)).toBeInTheDocument();\n });\n });\n });\n\n describe('one provider_type: provider, one provider_type: coordination_center', () => {\n describe('on-platform programs', () => {\n it ('should not group programs', async () => {\n const filteredPrograms = getSelectedPrograms({\n sendingProviderIsCC: false,\n sendingProviderSensitive: false,\n programInCurrentProvider: false,\n receivingProviderLicensed: true,\n receivingProviderSensitive: false,\n receivingReferrals: true,\n ccAndNonCCPrograms: true,\n programsInSameNetwork: true,\n programsInSameProvider: false,\n isGrouped: true,\n programCount: 2,\n serviceCount: 1,\n });\n if (filteredPrograms.length) {\n await act(async () => render(<ReferralBuilder />, {\n appContextProviderProps: {\n person,\n selectedPrograms: filteredPrograms,\n currentProvider: mockAppReferralsProps.appState.currentProvider,\n currentEmployee: { id: \"3f9cdc2c-7868-4b5e-8438-8104aefcca24\" },\n }\n }))\n }\n \n expect(screen.getByText(/Prepare Your Referrals/i)).toBeInTheDocument();\n expect(screen.getByText(/Referral 1: Benefits Eligibility Screening/i)).toBeInTheDocument();\n \n await act(async () => fireEvent.click(screen.getAllByRole('heading', { name: `Referral 2:` })[0]));\n expect(screen.getByText(/Referral 2: Benefits Eligibility Screening/i)).toBeInTheDocument();\n });\n });\n });\n });\n\n describe('receiving programs in unlicensed providers, provider_type: provider, off-platform programs', () => {\n it ('should group programs', async () => {\n const filteredPrograms = getSelectedPrograms({\n sendingProviderIsCC: false,\n sendingProviderSensitive: false,\n receivingProviderIsCC: false,\n programInCurrentProvider: false,\n receivingProviderLicensed: false,\n receivingProviderSensitive: false,\n receivingReferrals: false,\n programsInSameNetwork: true,\n programsInSameProvider: false,\n isGrouped: true,\n programCount: 2,\n serviceCount: 1,\n });\n\n if (filteredPrograms.length) {\n await act(async () => render(<ReferralBuilder />, {\n appContextProviderProps: {\n person,\n selectedPrograms: filteredPrograms,\n currentProvider: mockAppReferralsProps.appState.currentProvider,\n currentEmployee: { id: \"3f9cdc2c-7868-4b5e-8438-8104aefcca24\" },\n }\n }))\n }\n\n expect(screen.getByText(/Prepare Your Referrals/i)).toBeInTheDocument();\n expect(screen.getByText(/Referral 1: Benefits Eligibility Screening, Grouped/i)).toBeInTheDocument();\n expect(screen.queryByText(/Referral 2/i)).not.toBeInTheDocument();\n });\n });\n\n describe('one receiving program in licensed provider, one receiving program in unlicensed provider', () => {\n describe('both provider_types: provider', () => {\n describe('off-platform programs', () => {\n it ('should not group programs', async () => {\n const filteredPrograms = getSelectedPrograms({\n sendingProviderIsCC: false,\n sendingProviderSensitive: false,\n programInCurrentProvider: false,\n licensedAndUnlicensedReceivingProviders: true,\n receivingProviderSensitive: false,\n receivingReferrals: false,\n singleNetwork: true,\n programsInSameNetwork: true,\n programsInSameProvider: false,\n isGrouped: true,\n programCount: 2,\n serviceCount: 1,\n });\n\n expect(filteredPrograms.length).toEqual(2);\n\n if (filteredPrograms.length) {\n await act(async () => render(<ReferralBuilder />, {\n appContextProviderProps: {\n person,\n selectedPrograms: filteredPrograms,\n currentProvider: mockAppReferralsProps.appState.currentProvider,\n currentEmployee: { id: \"3f9cdc2c-7868-4b5e-8438-8104aefcca24\" },\n }\n }))\n }\n\n expect(screen.getByText(/Prepare Your Referrals/i)).toBeInTheDocument();\n expect(screen.getByText(/Referral 1: Benefits Eligibility Screening/i)).toBeInTheDocument();\n await act(async () => fireEvent.click(screen.getAllByRole('heading', { name: `Referral 2:` })[0]));\n expect(screen.getByText(/Referral 2: Benefits Eligibility Screening/i)).toBeInTheDocument();\n });\n });\n\n describe('one off-platform program, one on-platform program', () => {\n it ('should not group programs', async () => {\n const filteredPrograms = getSelectedPrograms({\n sendingProviderIsCC: false,\n sendingProviderSensitive: false,\n programInCurrentProvider: false,\n licensedAndUnlicensedReceivingProviders: true,\n receivingProviderSensitive: false,\n receivingReferrals: false,\n onAndOffPlatformPrograms: true,\n programsInSameNetwork: true,\n programsInSameProvider: false,\n isGrouped: true,\n programCount: 2,\n serviceCount: 1,\n });\n\n expect(filteredPrograms.length).toEqual(2);\n\n if (filteredPrograms.length) {\n await act(async () => render(<ReferralBuilder />, {\n appContextProviderProps: {\n person,\n selectedPrograms: filteredPrograms,\n currentProvider: mockAppReferralsProps.appState.currentProvider,\n currentEmployee: { id: \"3f9cdc2c-7868-4b5e-8438-8104aefcca24\" },\n }\n }))\n }\n\n expect(screen.getByText(/Prepare Your Referrals/i)).toBeInTheDocument();\n expect(screen.getByText(/Referral 1: Benefits Eligibility Screening/i)).toBeInTheDocument();\n await act(async () => fireEvent.click(screen.getAllByRole('heading', { name: `Referral 2:` })[0]));\n expect(screen.getByText(/Referral 2: Benefits Eligibility Screening/i)).toBeInTheDocument();\n });\n });\n });\n\n describe('unlicensed provider_type: provider, licensed provider_type: coordination_center', () => {\n describe('off-platform programs', () => {\n it ('should not group programs', async () => {\n const filteredPrograms = getSelectedPrograms({\n sendingProviderIsCC: false,\n sendingProviderSensitive: false,\n licensedProviderIsCC: true,\n ccAndNonCCPrograms: true,\n programInCurrentProvider: false,\n licensedAndUnlicensedReceivingProviders: true,\n receivingProviderSensitive: false,\n receivingReferrals: false,\n programsInSameNetwork: true,\n programsInSameProvider: false,\n isGrouped: true,\n programCount: 2,\n serviceCount: 1,\n });\n\n // Verify we have enough programs for this test scenario\n expect(filteredPrograms.length).toEqual(2);\n\n if (filteredPrograms.length) {\n await act(async () => render(<ReferralBuilder />, {\n appContextProviderProps: {\n person,\n selectedPrograms: filteredPrograms,\n currentProvider: mockAppReferralsProps.appState.currentProvider,\n currentEmployee: { id: \"3f9cdc2c-7868-4b5e-8438-8104aefcca24\" },\n }\n }))\n }\n\n expect(screen.getByText(/Prepare Your Referrals/i)).toBeInTheDocument();\n expect(screen.getByText(/Referral 1: Benefits Eligibility Screening/i)).toBeInTheDocument();\n await act(async () => fireEvent.click(screen.getAllByRole('heading', { name: `Referral 2:` })[0]));\n expect(screen.getByText(/Referral 2: Benefits Eligibility Screening/i)).toBeInTheDocument();\n });\n });\n\n describe('one off-platform program, one on-platform program', () => {\n it ('should not group programs', async () => {\n const filteredPrograms = getSelectedPrograms({\n sendingProviderIsCC: false,\n sendingProviderSensitive: false,\n licensedProviderIsCC: true,\n ccAndNonCCPrograms: true,\n programInCurrentProvider: false,\n licensedAndUnlicensedReceivingProviders: true,\n receivingProviderSensitive: false,\n receivingReferrals: false,\n programsInSameNetwork: true,\n onAndOffPlatformPrograms: true,\n programsInSameProvider: false,\n isGrouped: true,\n programCount: 2,\n serviceCount: 1,\n });\n\n expect(filteredPrograms.length).toEqual(2);\n\n if (filteredPrograms.length) {\n await act(async () => render(<ReferralBuilder />, {\n appContextProviderProps: {\n person,\n selectedPrograms: filteredPrograms,\n currentProvider: mockAppReferralsProps.appState.currentProvider,\n currentEmployee: { id: \"3f9cdc2c-7868-4b5e-8438-8104aefcca24\" },\n }\n }))\n }\n\n expect(screen.getByText(/Prepare Your Referrals/i)).toBeInTheDocument();\n expect(screen.getByText(/Referral 1: Benefits Eligibility Screening/i)).toBeInTheDocument();\n await act(async () => fireEvent.click(screen.getAllByRole('heading', { name: `Referral 2:` })[0]));\n expect(screen.getByText(/Referral 2: Benefits Eligibility Screening/i)).toBeInTheDocument();\n });\n });\n });\n });\n });\n });\n\n describe('receiving programs not in the same network or provider', () => {\n describe('on-platform receiving programs are in licensed provider, provider_type: provider', () => {\n it ('should not group programs', async () => {\n const filteredPrograms = getSelectedPrograms({\n sendingProviderIsCC: false,\n sendingProviderSensitive: false,\n receivingProviderIsCC: false,\n programInCurrentProvider: false,\n receivingProviderLicensed: true,\n receivingProviderSensitive: false,\n receivingReferrals: true,\n programsInSameNetwork: false,\n programsInSameProvider: false,\n isGrouped: true,\n programCount: 2,\n serviceCount: 1,\n });\n if (filteredPrograms.length) {\n await act(async () => render(<ReferralBuilder />, {\n appContextProviderProps: {\n person,\n selectedPrograms: filteredPrograms,\n currentProvider: mockAppReferralsProps.appState.currentProvider,\n currentEmployee: mockAppReferralsProps.appState.currentEmployee\n }\n }))\n }\n\n expect(screen.getByText(/Prepare Your Referrals/i)).toBeInTheDocument();\n expect(screen.getByText(/Referral 1: Benefits Eligibility Screening/i)).toBeInTheDocument();\n\n fireEvent.click(screen.getAllByRole('heading', { name: `Referral 2:` })[0]);\n expect(screen.getByText(/Referral 2: Benefits Eligibility Screening/i)).toBeInTheDocument();\n });\n })\n });\n });\n\n describe('grouping unlisted programs', () => {\n beforeEach(() => {\n mockUseFeatureFlag.mockImplementation((flag) => flag === 'hint542SupersetUnlistedPrograms');\n });\n\n describe('two unlisted programs different service', () => {\n it ('it should display two referrals with one unlisted program on each referral', async () => {\n const filteredPrograms = getSelectedUnlistedPrograms({\n programCount: 1,\n results: 2,\n });\n\n if (filteredPrograms.length) {\n await act(async () => render(<ReferralBuilder />, {\n appContextProviderProps: {\n person,\n selectedPrograms: filteredPrograms,\n currentProvider: {\n id: 'p1', \n networks: [{ id: '4abb98dd-6e42-4890-a439-daa1a89e3aa3' }]\n },\n currentEmployee: { id: \"3f9cdc2c-7868-4b5e-8438-8104aefcca24\" },\n }\n }))\n\n expect(screen.getByText(/Prepare Your Referrals/i)).toBeInTheDocument();\n expect(screen.getAllByText(/Referral 1/i)[0]).toBeInTheDocument();\n expect(screen.getByText(/Network selection/i)).toBeInTheDocument();\n\n await act(async () => fireEvent.click(screen.getAllByRole('heading', { name: `Referral 2:` })[0]));\n expect(screen.getAllByText(/Referral 2/i)[0]).toBeInTheDocument();\n expect(screen.getByText(/Network selection/i)).toBeInTheDocument();\n }\n });\n });\n\n describe('two unlisted programs same service', () => {\n it ('it should display one referral with two unlisted programs', async () => {\n const filteredPrograms = getSelectedUnlistedPrograms({\n programCount: 2,\n });\n\n if (filteredPrograms.length) {\n await act(async () => render(<ReferralBuilder />, {\n appContextProviderProps: {\n person,\n selectedPrograms: filteredPrograms,\n currentProvider: {\n id: 'p1', \n networks: [{ id: '4abb98dd-6e42-4890-a439-daa1a89e3aa3' }]\n },\n currentEmployee: { id: \"3f9cdc2c-7868-4b5e-8438-8104aefcca24\" },\n }\n }))\n\n expect(screen.getByText(/Prepare Your Referrals/i)).toBeInTheDocument();\n expect(screen.getAllByText(/Referral 1/i)[0]).toBeInTheDocument();\n expect(screen.getByText(/Network selection/i)).toBeInTheDocument();\n expect(screen.queryByText(/Referral 2/i)).not.toBeInTheDocument();\n }\n });\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { buildGroupedReferrals } from '../buildGroupedReferrals';
|
|
2
|
+
import { filterNetworks } from '../utils';
|
|
3
|
+
describe('buildGroupedReferrals network assignment', () => {
|
|
4
|
+
it('uses a shared network for a multi-network program and leaves ambiguous referrals unselected', () => {
|
|
5
|
+
const east = {
|
|
6
|
+
id: 'east',
|
|
7
|
+
name: 'Unite Us East',
|
|
8
|
+
state: 'active'
|
|
9
|
+
};
|
|
10
|
+
const uniteUsNetwork = {
|
|
11
|
+
id: 'unite-us-network',
|
|
12
|
+
name: 'UniteUsNetwork',
|
|
13
|
+
state: 'active'
|
|
14
|
+
};
|
|
15
|
+
const xUniteCalifornia = {
|
|
16
|
+
id: 'x-unite-california',
|
|
17
|
+
name: 'xUniteCalifornia',
|
|
18
|
+
state: 'active'
|
|
19
|
+
};
|
|
20
|
+
const referral = {
|
|
21
|
+
sendingProvider: {
|
|
22
|
+
id: 'sending-provider',
|
|
23
|
+
networks: [east, uniteUsNetwork]
|
|
24
|
+
},
|
|
25
|
+
service: {
|
|
26
|
+
id: 'service-1'
|
|
27
|
+
},
|
|
28
|
+
programs: [{
|
|
29
|
+
id: 'program-a',
|
|
30
|
+
status: null,
|
|
31
|
+
fee_schedule_program: {
|
|
32
|
+
authorization_required: false
|
|
33
|
+
},
|
|
34
|
+
provider: {
|
|
35
|
+
id: 'provider-a',
|
|
36
|
+
licensed: true,
|
|
37
|
+
sensitive: false,
|
|
38
|
+
provider_type: 'organization',
|
|
39
|
+
networks: [east, uniteUsNetwork]
|
|
40
|
+
}
|
|
41
|
+
}, {
|
|
42
|
+
id: 'program-b',
|
|
43
|
+
status: null,
|
|
44
|
+
fee_schedule_program: {
|
|
45
|
+
authorization_required: false
|
|
46
|
+
},
|
|
47
|
+
provider: {
|
|
48
|
+
id: 'provider-b',
|
|
49
|
+
licensed: true,
|
|
50
|
+
sensitive: false,
|
|
51
|
+
provider_type: 'organization',
|
|
52
|
+
networks: [uniteUsNetwork, xUniteCalifornia]
|
|
53
|
+
}
|
|
54
|
+
}]
|
|
55
|
+
};
|
|
56
|
+
const candidateNetworks = filterNetworks(referral);
|
|
57
|
+
expect(candidateNetworks.map(network => network.id)).toEqual(expect.arrayContaining([east.id, uniteUsNetwork.id]));
|
|
58
|
+
expect(candidateNetworks.length).toBeGreaterThan(1);
|
|
59
|
+
const grouped = buildGroupedReferrals([referral], {
|
|
60
|
+
sensitive: false
|
|
61
|
+
});
|
|
62
|
+
const programAReferral = grouped.find(item => {
|
|
63
|
+
var _item$programs;
|
|
64
|
+
return ((_item$programs = item.programs) === null || _item$programs === void 0 || (_item$programs = _item$programs[0]) === null || _item$programs === void 0 ? void 0 : _item$programs.id) === 'program-a';
|
|
65
|
+
});
|
|
66
|
+
const programBReferral = grouped.find(item => {
|
|
67
|
+
var _item$programs2;
|
|
68
|
+
return ((_item$programs2 = item.programs) === null || _item$programs2 === void 0 || (_item$programs2 = _item$programs2[0]) === null || _item$programs2 === void 0 ? void 0 : _item$programs2.id) === 'program-b';
|
|
69
|
+
});
|
|
70
|
+
expect(programAReferral).toBeDefined();
|
|
71
|
+
expect(programBReferral).toBeDefined();
|
|
72
|
+
expect(programAReferral.network).toBeNull();
|
|
73
|
+
expect(programBReferral.programs[0].provider.networks.length).toBeGreaterThan(1);
|
|
74
|
+
expect(programBReferral.network.id).toBe('unite-us-network');
|
|
75
|
+
expect(programBReferral.programs[0].provider.networks.map(network => network.id)).toContain('unite-us-network');
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
//# sourceMappingURL=buildGroupedReferrals.networkBug.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildGroupedReferrals.networkBug.test.js","names":["buildGroupedReferrals","filterNetworks","describe","it","east","id","name","state","uniteUsNetwork","xUniteCalifornia","referral","sendingProvider","networks","service","programs","status","fee_schedule_program","authorization_required","provider","licensed","sensitive","provider_type","candidateNetworks","expect","map","network","toEqual","arrayContaining","length","toBeGreaterThan","grouped","programAReferral","find","item","_item$programs","programBReferral","_item$programs2","toBeDefined","toBeNull","toBe","toContain"],"sources":["../../../../src/pages/builder/__tests__/buildGroupedReferrals.networkBug.test.js"],"sourcesContent":["import { buildGroupedReferrals } from '../buildGroupedReferrals';\nimport { filterNetworks } from '../utils';\n\ndescribe('buildGroupedReferrals network assignment', () => {\n it('uses a shared network for a multi-network program and leaves ambiguous referrals unselected', () => {\n const east = { id: 'east', name: 'Unite Us East', state: 'active' };\n const uniteUsNetwork = { id: 'unite-us-network', name: 'UniteUsNetwork', state: 'active' };\n const xUniteCalifornia = { id: 'x-unite-california', name: 'xUniteCalifornia', state: 'active' };\n\n const referral = {\n sendingProvider: {\n id: 'sending-provider',\n networks: [east, uniteUsNetwork],\n },\n service: { id: 'service-1' },\n programs: [\n {\n id: 'program-a',\n status: null,\n fee_schedule_program: { authorization_required: false },\n provider: {\n id: 'provider-a',\n licensed: true,\n sensitive: false,\n provider_type: 'organization',\n networks: [east, uniteUsNetwork],\n },\n },\n {\n id: 'program-b',\n status: null,\n fee_schedule_program: { authorization_required: false },\n provider: {\n id: 'provider-b',\n licensed: true,\n sensitive: false,\n provider_type: 'organization',\n networks: [uniteUsNetwork, xUniteCalifornia],\n },\n },\n ],\n };\n\n const candidateNetworks = filterNetworks(referral);\n expect(candidateNetworks.map((network) => network.id)).toEqual(\n expect.arrayContaining([east.id, uniteUsNetwork.id]),\n );\n expect(candidateNetworks.length).toBeGreaterThan(1);\n\n const grouped = buildGroupedReferrals([referral], { sensitive: false });\n const programAReferral = grouped.find((item) => item.programs?.[0]?.id === 'program-a');\n const programBReferral = grouped.find((item) => item.programs?.[0]?.id === 'program-b');\n\n expect(programAReferral).toBeDefined();\n expect(programBReferral).toBeDefined();\n expect(programAReferral.network).toBeNull();\n expect(programBReferral.programs[0].provider.networks.length).toBeGreaterThan(1);\n\n expect(programBReferral.network.id).toBe('unite-us-network');\n expect(programBReferral.programs[0].provider.networks.map((network) => network.id))\n .toContain('unite-us-network');\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -17,6 +17,19 @@ import { OFF_PLATFORM_REFERRALS_ONLY } from './constants';
|
|
|
17
17
|
// - Unlisted programs can only be grouped with programs in the same service and with off platform referrals
|
|
18
18
|
|
|
19
19
|
const withPreventUngroup = fn => referral => referral.prevent_ungroup ? [referral] : fn(referral);
|
|
20
|
+
const getReferralNetworkForProgram = (referral, program) => {
|
|
21
|
+
const networkOptions = filterNetworks(_objectSpread(_objectSpread({}, referral), {}, {
|
|
22
|
+
programs: [program]
|
|
23
|
+
}));
|
|
24
|
+
if (networkOptions.length === 1) {
|
|
25
|
+
return head(networkOptions);
|
|
26
|
+
}
|
|
27
|
+
const existingNetwork = networkOptions.find(network => {
|
|
28
|
+
var _referral$network;
|
|
29
|
+
return network.id === ((_referral$network = referral.network) === null || _referral$network === void 0 ? void 0 : _referral$network.id);
|
|
30
|
+
});
|
|
31
|
+
return existingNetwork || null;
|
|
32
|
+
};
|
|
20
33
|
const groupByNetworkImpl = referral => {
|
|
21
34
|
const networks = filterNetworks(referral);
|
|
22
35
|
// if there is only one possible network, set the referral's network and return the referral
|
|
@@ -53,7 +66,7 @@ const groupByNetworkImpl = referral => {
|
|
|
53
66
|
// create separate referrals for each program with multiple networks
|
|
54
67
|
const multipleNetworkReferrals = multipleNetworkPrograms.map(program => _objectSpread(_objectSpread({}, referral), {}, {
|
|
55
68
|
programs: [program],
|
|
56
|
-
network:
|
|
69
|
+
network: getReferralNetworkForProgram(referral, program)
|
|
57
70
|
}));
|
|
58
71
|
// create separate referrals for each program with no network
|
|
59
72
|
const noNetworkReferrals = noNetworkPrograms.map(program => _objectSpread(_objectSpread({}, referral), {}, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildGroupedReferrals.js","names":["isEmpty","every","head","groupBy","flatMap","isUnlistedReferral","filterNetworks","programIsOffPlatform","programIsOnPlatform","separateSensitiveAndNonSensitiveAuthPrograms","createSameFeeReferrals","createSensitiveProgramReferrals","createNonAuthReferrals","OFF_PLATFORM_REFERRALS_ONLY","withPreventUngroup","fn","referral","prevent_ungroup","groupByNetworkImpl","networks","length","network","singleNetworkPrograms","programs","filter","program","_program$provider","provider","multipleNetworkPrograms","_program$provider2","noNetworkPrograms","_program$provider3","programsGroupedByNetworkId","sameNetworkReferrals","Object","values","map","_programs$0$provider","_objectSpread","multipleNetworkReferrals","noNetworkReferrals","groupByNetwork","groupByNetworkStatus","p","inNetworkPrograms","OONPrograms","groupBySensitivityImpl","_head","_p$provider","sensitive","sensitivePrograms","_p$provider2","nonSensitivePrograms","_p$provider3","nonSensitiveReferrals","groupBySensitivity","groupByCCImpl","_head2","_p$provider4","provider_type","ccPrograms","_p$provider5","nonCCPrograms","_p$provider6","nonCCReferrals","groupByCC","preventGroupingForSensitiveProvider","groupByFunded","fundedWithAuthorizationPrograms","_p$fee_schedule_progr","fee_schedule_program","authorization_required","fundedWithoutAuthorizationPrograms","_p$fee_schedule_progr2","sensitiveAuthPrograms","nonSensitive","nonSensitiveAuthPrograms","sameFeeReferrals","sensitiveProgramReferrals","nonAuthReferrals","groupUnlistedProgramsToReferrals","referrals","unlistedReferrals","listedReferrals","forEach","id","includes","push","unlistedReferral","processReferral","foundReferral","find","_unlistedReferral$pro","_referral$programs$","services","service","status","toLowerCase","splice","updatedUnlistedReferrals","_unlistedReferral$pro2","buildGroupedReferrals","newReferrals","currentProvider","groupedReferrals","groupOperations","operation"],"sources":["../../../src/pages/builder/buildGroupedReferrals.js"],"sourcesContent":["import { isEmpty, every, head, groupBy, flatMap } from 'lodash';\nimport {\n isUnlistedReferral,\n filterNetworks,\n programIsOffPlatform,\n programIsOnPlatform,\n separateSensitiveAndNonSensitiveAuthPrograms,\n createSameFeeReferrals,\n createSensitiveProgramReferrals,\n createNonAuthReferrals,\n} from './utils';\nimport { OFF_PLATFORM_REFERRALS_ONLY } from './constants';\n\n// Grouping Rules:\n// - On- and off-platform programs cannot be grouped\n// - Service must be the same\n// - Programs in coordination centers cannot be grouped\n// - Programs must be in the same network\n// - Programs in sensitive providers cannot be grouped\n// - Programs at the same provider cannot be grouped\n// - Users at sensitive providers cannot group programs\n// - Funded programs that require authroization with the same fee schedule program can be grouped\n// - Unlisted programs can only be grouped with programs in the same service and with off platform referrals\n\nconst withPreventUngroup = (fn) => (referral) => (\n referral.prevent_ungroup ? [referral] : fn(referral)\n);\n\nconst groupByNetworkImpl = (referral) => {\n const networks = filterNetworks(referral);\n // if there is only one possible network, set the referral's network and return the referral\n if (networks.length === 1 || isUnlistedReferral(referral)) {\n referral.network = head(networks);\n return [referral];\n }\n // if there is more than one possible network, divide the programs into multiple referrals:\n // referrals with programs in providers in a single network and\n // referrals with programs in providers in multiple networks\n // referrals with unlisted programs, don't have network\n const singleNetworkPrograms = referral.programs.filter(program => program.provider?.networks?.length === 1);\n const multipleNetworkPrograms = referral.programs.filter(program => program.provider?.networks?.length > 1);\n const noNetworkPrograms = referral.programs.filter(program => !program.provider?.networks?.length);\n // group single network programs by network id\n const programsGroupedByNetworkId = groupBy(singleNetworkPrograms, 'provider.networks[0].id');\n // create a grouped referral for programs with the same single network\n const sameNetworkReferrals = Object.values(programsGroupedByNetworkId).map(programs => ({\n ...referral,\n programs,\n network: head(programs[0].provider?.networks),\n }))\n // create separate referrals for each program with multiple networks\n const multipleNetworkReferrals = multipleNetworkPrograms.map(program => ({\n ...referral,\n programs: [program],\n network: head(networks),\n }))\n // create separate referrals for each program with no network\n const noNetworkReferrals = noNetworkPrograms.map(program => ({\n ...referral,\n programs: [program],\n }))\n\n return [...multipleNetworkReferrals, ...sameNetworkReferrals, ...noNetworkReferrals];\n}\n\nconst groupByNetwork = withPreventUngroup(groupByNetworkImpl);\n\nconst groupByNetworkStatus = (referral) => {\n if (referral.prevent_ungroup) {\n return [referral];\n }\n // if every program is on-platform or every programs is off-platform, return the referral\n if (every(referral.programs.map(p => programIsOnPlatform(p))) ||\n every(referral.programs.map(p => programIsOffPlatform(p)))) {\n return [referral];\n }\n // divide programs into on- and off-platform referrals\n const inNetworkPrograms = referral.programs.filter(p => programIsOnPlatform(p));\n const OONPrograms = referral.programs.filter(p => programIsOffPlatform(p));\n\n return [\n ...inNetworkPrograms.length ? [{ ...referral, programs: inNetworkPrograms }] : [],\n ...OONPrograms.length ? [{ ...referral, programs: OONPrograms }] : []\n ];\n}\n\nconst groupBySensitivityImpl = (referral) => {\n // if every program is non-sensitive or the referral contains only one sensitive program, return referral\n if (every(referral.programs.map(p => !p?.provider?.sensitive)) ||\n (referral.programs.length === 1 && head(referral.programs)?.provider?.sensitive)) {\n return [referral];\n }\n // create a new referral for each sensitive program\n const sensitivePrograms = referral.programs.filter(p => p?.provider?.sensitive).map(program => ({\n ...referral, programs: [program]\n }));\n // create a new referral for non-sensitive programs\n const nonSensitivePrograms = referral.programs.filter(p => !p?.provider?.sensitive);\n const nonSensitiveReferrals = !isEmpty(nonSensitivePrograms) ? [{ ...referral, programs: nonSensitivePrograms }] : [];\n\n return [...sensitivePrograms, ...nonSensitiveReferrals];\n}\n\nconst groupBySensitivity = withPreventUngroup(groupBySensitivityImpl);\n\nconst groupByCCImpl = (referral) => {\n // if no programs are in a coordination center or the referral contains only one program in a cc, return referral\n if (every(referral.programs.map(p => p?.provider?.provider_type !== 'coordination_center')) ||\n (referral.programs.length === 1 && head(referral.programs)?.provider?.provider_type === 'coordination_center')) {\n return [referral];\n }\n // create a new referral for each program in a cc\n const ccPrograms = referral.programs.filter(p => p?.provider?.provider_type === 'coordination_center')\n .map(program => ({\n ...referral, programs: [program]\n }));\n // create a new referral for programs not in a cc\n const nonCCPrograms = referral.programs.filter(p => p?.provider?.provider_type !== 'coordination_center');\n const nonCCReferrals = !isEmpty(nonCCPrograms) ? [{ ...referral, programs: nonCCPrograms }] : [];\n\n return [...ccPrograms, ...nonCCReferrals];\n}\n\nconst groupByCC = withPreventUngroup(groupByCCImpl);\n\nconst preventGroupingForSensitiveProvider = (referral) => {\n const networks = filterNetworks(referral);\n // if there is only one possible network, set the referral's network\n if (networks.length === 1) {\n referral.network = head(networks);\n }\n const { programs } = referral;\n return programs.length > 1 ?\n programs.map(program => ({ ...referral, programs: [program] })) :\n [referral];\n};\n\nconst groupByFunded = (referral) => {\n const networks = filterNetworks(referral);\n // if there is only one possible network, set the referral's network\n if (networks.length === 1) {\n referral.network = head(networks);\n }\n\n const fundedWithAuthorizationPrograms = referral.programs.filter(p => p.fee_schedule_program?.authorization_required);\n const fundedWithoutAuthorizationPrograms = referral.programs.filter(p => !p.fee_schedule_program?.authorization_required);\n\n const {\n sensitive: sensitiveAuthPrograms,\n nonSensitive: nonSensitiveAuthPrograms,\n } = separateSensitiveAndNonSensitiveAuthPrograms(fundedWithAuthorizationPrograms);\n\n const sameFeeReferrals = createSameFeeReferrals(referral, nonSensitiveAuthPrograms);\n const sensitiveProgramReferrals = createSensitiveProgramReferrals(referral, sensitiveAuthPrograms);\n const nonAuthReferrals = createNonAuthReferrals(referral, fundedWithoutAuthorizationPrograms);\n\n return [...nonAuthReferrals, ...sameFeeReferrals, ...sensitiveProgramReferrals];\n};\n\nconst groupUnlistedProgramsToReferrals = (referrals) => {\n const unlistedReferrals = [], listedReferrals = [];\n\n referrals.forEach(referral => {\n if (every(referral.programs, p => p.id.includes('unlisted')))\n unlistedReferrals.push(referral);\n else\n listedReferrals.push(referral);\n });\n\n if (unlistedReferrals.length === 0) {\n return listedReferrals;\n }\n\n // Loop over the unlisted referrals, in case of a match, add the unlisted program to the referral \n // and remove it from the unlisted referral\n unlistedReferrals.forEach(unlistedReferral => {\n const processReferral = (referrals) => {\n // Find a referral with the same service and off-platform status\n const foundReferral = referrals.find(referral =>\n unlistedReferral.programs[0]?.services[0] === referral.service.id &&\n referral.programs[0]?.status?.toLowerCase() === OFF_PLATFORM_REFERRALS_ONLY\n );\n \n if (foundReferral) {\n // Add the unlisted program to the referral\n foundReferral.programs.push(unlistedReferral.programs[0]);\n // Remove the unlisted program from the referral, otherwise, it will be added to referrals multiple times\n unlistedReferral.programs.splice(0, 1);\n }\n };\n \n processReferral(listedReferrals);\n processReferral(unlistedReferrals);\n });\n\n // Remove referrals with no programs\n const updatedUnlistedReferrals = unlistedReferrals.filter(unlistedReferral => {\n if (unlistedReferral?.programs?.length > 0)\n return unlistedReferral;\n });\n\n return [...listedReferrals, ...updatedUnlistedReferrals];\n}\n\nexport const buildGroupedReferrals = (newReferrals, currentProvider) => {\n let groupedReferrals = newReferrals;\n // if the current provider is sensitive, prevent grouping\n if (currentProvider?.sensitive) {\n groupedReferrals = flatMap(groupedReferrals, preventGroupingForSensitiveProvider);\n } else {\n const groupOperations = [];\n\n groupOperations.push(groupByFunded, groupByNetwork, groupByNetworkStatus, groupBySensitivity, groupByCC);\n\n groupOperations.forEach(operation => {\n groupedReferrals = flatMap(groupedReferrals, operation);\n });\n\n groupedReferrals = groupUnlistedProgramsToReferrals(groupedReferrals);\n }\n\n return groupedReferrals;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"buildGroupedReferrals.js","names":["isEmpty","every","head","groupBy","flatMap","isUnlistedReferral","filterNetworks","programIsOffPlatform","programIsOnPlatform","separateSensitiveAndNonSensitiveAuthPrograms","createSameFeeReferrals","createSensitiveProgramReferrals","createNonAuthReferrals","OFF_PLATFORM_REFERRALS_ONLY","withPreventUngroup","fn","referral","prevent_ungroup","getReferralNetworkForProgram","program","networkOptions","_objectSpread","programs","length","existingNetwork","find","network","_referral$network","id","groupByNetworkImpl","networks","singleNetworkPrograms","filter","_program$provider","provider","multipleNetworkPrograms","_program$provider2","noNetworkPrograms","_program$provider3","programsGroupedByNetworkId","sameNetworkReferrals","Object","values","map","_programs$0$provider","multipleNetworkReferrals","noNetworkReferrals","groupByNetwork","groupByNetworkStatus","p","inNetworkPrograms","OONPrograms","groupBySensitivityImpl","_head","_p$provider","sensitive","sensitivePrograms","_p$provider2","nonSensitivePrograms","_p$provider3","nonSensitiveReferrals","groupBySensitivity","groupByCCImpl","_head2","_p$provider4","provider_type","ccPrograms","_p$provider5","nonCCPrograms","_p$provider6","nonCCReferrals","groupByCC","preventGroupingForSensitiveProvider","groupByFunded","fundedWithAuthorizationPrograms","_p$fee_schedule_progr","fee_schedule_program","authorization_required","fundedWithoutAuthorizationPrograms","_p$fee_schedule_progr2","sensitiveAuthPrograms","nonSensitive","nonSensitiveAuthPrograms","sameFeeReferrals","sensitiveProgramReferrals","nonAuthReferrals","groupUnlistedProgramsToReferrals","referrals","unlistedReferrals","listedReferrals","forEach","includes","push","unlistedReferral","processReferral","foundReferral","_unlistedReferral$pro","_referral$programs$","services","service","status","toLowerCase","splice","updatedUnlistedReferrals","_unlistedReferral$pro2","buildGroupedReferrals","newReferrals","currentProvider","groupedReferrals","groupOperations","operation"],"sources":["../../../src/pages/builder/buildGroupedReferrals.js"],"sourcesContent":["import { isEmpty, every, head, groupBy, flatMap } from 'lodash';\nimport {\n isUnlistedReferral,\n filterNetworks,\n programIsOffPlatform,\n programIsOnPlatform,\n separateSensitiveAndNonSensitiveAuthPrograms,\n createSameFeeReferrals,\n createSensitiveProgramReferrals,\n createNonAuthReferrals,\n} from './utils';\nimport { OFF_PLATFORM_REFERRALS_ONLY } from './constants';\n\n// Grouping Rules:\n// - On- and off-platform programs cannot be grouped\n// - Service must be the same\n// - Programs in coordination centers cannot be grouped\n// - Programs must be in the same network\n// - Programs in sensitive providers cannot be grouped\n// - Programs at the same provider cannot be grouped\n// - Users at sensitive providers cannot group programs\n// - Funded programs that require authroization with the same fee schedule program can be grouped\n// - Unlisted programs can only be grouped with programs in the same service and with off platform referrals\n\nconst withPreventUngroup = (fn) => (referral) => (\n referral.prevent_ungroup ? [referral] : fn(referral)\n);\n\nconst getReferralNetworkForProgram = (referral, program) => {\n const networkOptions = filterNetworks({ ...referral, programs: [program] });\n\n if (networkOptions.length === 1) {\n return head(networkOptions);\n }\n\n const existingNetwork = networkOptions.find((network) => network.id === referral.network?.id);\n return existingNetwork || null;\n};\n\nconst groupByNetworkImpl = (referral) => {\n const networks = filterNetworks(referral);\n // if there is only one possible network, set the referral's network and return the referral\n if (networks.length === 1 || isUnlistedReferral(referral)) {\n referral.network = head(networks);\n return [referral];\n }\n // if there is more than one possible network, divide the programs into multiple referrals:\n // referrals with programs in providers in a single network and\n // referrals with programs in providers in multiple networks\n // referrals with unlisted programs, don't have network\n const singleNetworkPrograms = referral.programs.filter(program => program.provider?.networks?.length === 1);\n const multipleNetworkPrograms = referral.programs.filter(program => program.provider?.networks?.length > 1);\n const noNetworkPrograms = referral.programs.filter(program => !program.provider?.networks?.length);\n // group single network programs by network id\n const programsGroupedByNetworkId = groupBy(singleNetworkPrograms, 'provider.networks[0].id');\n // create a grouped referral for programs with the same single network\n const sameNetworkReferrals = Object.values(programsGroupedByNetworkId).map(programs => ({\n ...referral,\n programs,\n network: head(programs[0].provider?.networks),\n }))\n // create separate referrals for each program with multiple networks\n const multipleNetworkReferrals = multipleNetworkPrograms.map(program => ({\n ...referral,\n programs: [program],\n network: getReferralNetworkForProgram(referral, program),\n }))\n // create separate referrals for each program with no network\n const noNetworkReferrals = noNetworkPrograms.map(program => ({\n ...referral,\n programs: [program],\n }))\n\n return [...multipleNetworkReferrals, ...sameNetworkReferrals, ...noNetworkReferrals];\n}\n\nconst groupByNetwork = withPreventUngroup(groupByNetworkImpl);\n\nconst groupByNetworkStatus = (referral) => {\n if (referral.prevent_ungroup) {\n return [referral];\n }\n // if every program is on-platform or every programs is off-platform, return the referral\n if (every(referral.programs.map(p => programIsOnPlatform(p))) ||\n every(referral.programs.map(p => programIsOffPlatform(p)))) {\n return [referral];\n }\n // divide programs into on- and off-platform referrals\n const inNetworkPrograms = referral.programs.filter(p => programIsOnPlatform(p));\n const OONPrograms = referral.programs.filter(p => programIsOffPlatform(p));\n\n return [\n ...inNetworkPrograms.length ? [{ ...referral, programs: inNetworkPrograms }] : [],\n ...OONPrograms.length ? [{ ...referral, programs: OONPrograms }] : []\n ];\n}\n\nconst groupBySensitivityImpl = (referral) => {\n // if every program is non-sensitive or the referral contains only one sensitive program, return referral\n if (every(referral.programs.map(p => !p?.provider?.sensitive)) ||\n (referral.programs.length === 1 && head(referral.programs)?.provider?.sensitive)) {\n return [referral];\n }\n // create a new referral for each sensitive program\n const sensitivePrograms = referral.programs.filter(p => p?.provider?.sensitive).map(program => ({\n ...referral, programs: [program]\n }));\n // create a new referral for non-sensitive programs\n const nonSensitivePrograms = referral.programs.filter(p => !p?.provider?.sensitive);\n const nonSensitiveReferrals = !isEmpty(nonSensitivePrograms) ? [{ ...referral, programs: nonSensitivePrograms }] : [];\n\n return [...sensitivePrograms, ...nonSensitiveReferrals];\n}\n\nconst groupBySensitivity = withPreventUngroup(groupBySensitivityImpl);\n\nconst groupByCCImpl = (referral) => {\n // if no programs are in a coordination center or the referral contains only one program in a cc, return referral\n if (every(referral.programs.map(p => p?.provider?.provider_type !== 'coordination_center')) ||\n (referral.programs.length === 1 && head(referral.programs)?.provider?.provider_type === 'coordination_center')) {\n return [referral];\n }\n // create a new referral for each program in a cc\n const ccPrograms = referral.programs.filter(p => p?.provider?.provider_type === 'coordination_center')\n .map(program => ({\n ...referral, programs: [program]\n }));\n // create a new referral for programs not in a cc\n const nonCCPrograms = referral.programs.filter(p => p?.provider?.provider_type !== 'coordination_center');\n const nonCCReferrals = !isEmpty(nonCCPrograms) ? [{ ...referral, programs: nonCCPrograms }] : [];\n\n return [...ccPrograms, ...nonCCReferrals];\n}\n\nconst groupByCC = withPreventUngroup(groupByCCImpl);\n\nconst preventGroupingForSensitiveProvider = (referral) => {\n const networks = filterNetworks(referral);\n // if there is only one possible network, set the referral's network\n if (networks.length === 1) {\n referral.network = head(networks);\n }\n const { programs } = referral;\n return programs.length > 1 ?\n programs.map(program => ({ ...referral, programs: [program] })) :\n [referral];\n};\n\nconst groupByFunded = (referral) => {\n const networks = filterNetworks(referral);\n // if there is only one possible network, set the referral's network\n if (networks.length === 1) {\n referral.network = head(networks);\n }\n\n const fundedWithAuthorizationPrograms = referral.programs.filter(p => p.fee_schedule_program?.authorization_required);\n const fundedWithoutAuthorizationPrograms = referral.programs.filter(p => !p.fee_schedule_program?.authorization_required);\n\n const {\n sensitive: sensitiveAuthPrograms,\n nonSensitive: nonSensitiveAuthPrograms,\n } = separateSensitiveAndNonSensitiveAuthPrograms(fundedWithAuthorizationPrograms);\n\n const sameFeeReferrals = createSameFeeReferrals(referral, nonSensitiveAuthPrograms);\n const sensitiveProgramReferrals = createSensitiveProgramReferrals(referral, sensitiveAuthPrograms);\n const nonAuthReferrals = createNonAuthReferrals(referral, fundedWithoutAuthorizationPrograms);\n\n return [...nonAuthReferrals, ...sameFeeReferrals, ...sensitiveProgramReferrals];\n};\n\nconst groupUnlistedProgramsToReferrals = (referrals) => {\n const unlistedReferrals = [], listedReferrals = [];\n\n referrals.forEach(referral => {\n if (every(referral.programs, p => p.id.includes('unlisted')))\n unlistedReferrals.push(referral);\n else\n listedReferrals.push(referral);\n });\n\n if (unlistedReferrals.length === 0) {\n return listedReferrals;\n }\n\n // Loop over the unlisted referrals, in case of a match, add the unlisted program to the referral \n // and remove it from the unlisted referral\n unlistedReferrals.forEach(unlistedReferral => {\n const processReferral = (referrals) => {\n // Find a referral with the same service and off-platform status\n const foundReferral = referrals.find(referral =>\n unlistedReferral.programs[0]?.services[0] === referral.service.id &&\n referral.programs[0]?.status?.toLowerCase() === OFF_PLATFORM_REFERRALS_ONLY\n );\n \n if (foundReferral) {\n // Add the unlisted program to the referral\n foundReferral.programs.push(unlistedReferral.programs[0]);\n // Remove the unlisted program from the referral, otherwise, it will be added to referrals multiple times\n unlistedReferral.programs.splice(0, 1);\n }\n };\n \n processReferral(listedReferrals);\n processReferral(unlistedReferrals);\n });\n\n // Remove referrals with no programs\n const updatedUnlistedReferrals = unlistedReferrals.filter(unlistedReferral => {\n if (unlistedReferral?.programs?.length > 0)\n return unlistedReferral;\n });\n\n return [...listedReferrals, ...updatedUnlistedReferrals];\n}\n\nexport const buildGroupedReferrals = (newReferrals, currentProvider) => {\n let groupedReferrals = newReferrals;\n // if the current provider is sensitive, prevent grouping\n if (currentProvider?.sensitive) {\n groupedReferrals = flatMap(groupedReferrals, preventGroupingForSensitiveProvider);\n } else {\n const groupOperations = [];\n\n groupOperations.push(groupByFunded, groupByNetwork, groupByNetworkStatus, groupBySensitivity, groupByCC);\n\n groupOperations.forEach(operation => {\n groupedReferrals = flatMap(groupedReferrals, operation);\n });\n\n groupedReferrals = groupUnlistedProgramsToReferrals(groupedReferrals);\n }\n\n return groupedReferrals;\n}\n"],"mappings":"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","ignoreList":[]}
|