Skip to content

Commit

Permalink
use get user sites query (endpoint) instead of getting their profile …
Browse files Browse the repository at this point in the history
…temporaily (#755)
  • Loading branch information
dpgraham4401 authored Jul 29, 2024
1 parent dfbf955 commit 810e59c
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 28 deletions.
8 changes: 4 additions & 4 deletions client/src/components/Manifest/SiteSelect/SiteSelect.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@ import { HtForm } from 'components/UI';
import React, { useMemo } from 'react';
import { Control, Controller } from 'react-hook-form';
import Select from 'react-select';
import { ProfileSlice, useGetProfileQuery } from 'store';
import { useGetUserHaztrakSitesQuery } from 'store';
import { HaztrakSite } from 'components/HaztrakSite';

interface SiteSelectProps<T> {
control: Control;
Expand All @@ -20,12 +21,11 @@ export function SiteSelect({
const selectUserSites = useMemo(() => {
return createSelector(
(res) => res?.data,
(data: ProfileSlice) =>
!data || !data.sites ? [] : Object.values(data.sites).map((site) => site.handler)
(data: Array<HaztrakSite>) => (!data ? [] : Object.values(data).map((site) => site.handler))
);
}, []);

const { siteOptions } = useGetProfileQuery(undefined, {
const { siteOptions } = useGetUserHaztrakSitesQuery(undefined, {
selectFromResult: (result) => ({
...result,
siteOptions: selectUserSites(result),
Expand Down
32 changes: 8 additions & 24 deletions client/src/features/NewManifest/NewManifest.spec.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,35 +4,17 @@ import { NewManifest } from 'features/NewManifest/NewManifest';
import { http, HttpResponse } from 'msw';
import { setupServer } from 'msw/node';
import React from 'react';
import { HaztrakProfileResponse } from 'store/userSlice/user.slice';
import { cleanup, renderWithProviders, screen } from 'test-utils';
import { createMockSite } from 'test-utils/fixtures';
import { mockUserEndpoints } from 'test-utils/mock';
import { mockSiteEndpoints, mockUserEndpoints } from 'test-utils/mock';
import { API_BASE_URL } from 'test-utils/mock/mockSiteEndpoints';
import { afterAll, afterEach, beforeAll, describe, expect, test } from 'vitest';

const mySiteId = 'VATESTGEN001';
const mySiteName = 'My Site';
const mySite = createMockSite({
name: mySiteName,
// @ts-ignore
handler: { epaSiteId: mySiteId, siteType: 'Tsdf' },
});

const mockProfile: HaztrakProfileResponse = {
user: 'testuser1',
sites: [{ site: mySite, eManifest: 'viewer' }],
org: {
name: 'my org',
rcrainfoIntegrated: true,
id: '1234',
},
};

const server = setupServer(...mockUserEndpoints);
const mockSites = [createMockSite(), createMockSite()];
const server = setupServer(...mockUserEndpoints, ...mockSiteEndpoints);
server.use(
http.get(`${API_BASE_URL}/api/profile`, () => {
return HttpResponse.json({ ...mockProfile }, { status: 200 });
http.get(`${API_BASE_URL}/api/site`, () => {
return HttpResponse.json(mockSites, { status: 200 });
})
);
afterEach(() => {
Expand All @@ -56,7 +38,9 @@ describe('NewManifest', () => {
const siteSelection = screen.getByRole('combobox', { name: /site select/i });
await userEvent.click(siteSelection);
await userEvent.keyboard('{enter}');
expect(screen.getByText(new RegExp(`${mySiteId} --`, 'i'))).toBeInTheDocument();
expect(
screen.getByText(new RegExp(`${mockSites[0].handler.epaSiteId}`, 'i'))
).toBeInTheDocument();
const siteRole = screen.getByRole('combobox', { name: /site Role/i });
expect(siteRole).not.toBeDisabled();
});
Expand Down

0 comments on commit 810e59c

Please sign in to comment.