Skip to content

Commit

Permalink
Merge 05bbaad into 6002bf9
Browse files Browse the repository at this point in the history
  • Loading branch information
juliannzhou committed Aug 18, 2022
2 parents 6002bf9 + 05bbaad commit 7d47016
Show file tree
Hide file tree
Showing 8 changed files with 42 additions and 148 deletions.
30 changes: 15 additions & 15 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
"generate-notices": "generate-license-file --input package.json --output THIRD-PARTY-NOTICES --overwrite"
},
"dependencies": {
"@yext/search-headless": "^2.0.0-alpha.133",
"@yext/search-headless": "2.0.0-alpha.134",
"use-sync-external-store": "^1.1.0"
},
"devDependencies": {
Expand Down
12 changes: 6 additions & 6 deletions src/SearchHeadlessProvider.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,22 +12,22 @@ type Props = HeadlessConfig & {
};

export function SearchHeadlessProvider(props: PropsWithChildren<Props>): JSX.Element {
const { children, verticalKey, sessionTrackingEnabled=true, ...answersConfig } = props;
const { children, verticalKey, sessionTrackingEnabled=true, ...searchConfig } = props;
const additionalHttpHeaders = {
'Client-SDK': {
ANSWERS_HEADLESS_REACT: version
}
};
const answers: SearchHeadless = provideHeadless(answersConfig, additionalHttpHeaders);
const search: SearchHeadless = provideHeadless(searchConfig, additionalHttpHeaders);

verticalKey && answers.setVertical(verticalKey);
answers.setSessionTrackingEnabled(sessionTrackingEnabled);
verticalKey && search.setVertical(verticalKey);
search.setSessionTrackingEnabled(sessionTrackingEnabled);
if (sessionTrackingEnabled) {
const sessionId = acquireSessionId();
sessionId && answers.setSessionId(sessionId);
sessionId && search.setSessionId(sessionId);
}
return (
<SearchHeadlessContext.Provider value={answers}>
<SearchHeadlessContext.Provider value={search}>
{children}
</SearchHeadlessContext.Provider>
);
Expand Down
51 changes: 0 additions & 51 deletions src/deprecated.ts

This file was deleted.

3 changes: 0 additions & 3 deletions src/index.ts
Original file line number Diff line number Diff line change
@@ -1,15 +1,12 @@
import { useSearchActions, SearchActions } from './useSearchActions';
import { useSearchState, StateSelector } from './useSearchState';
import { useSearchUtilities, SearchUtilities } from './useSearchUtilities';
import { subscribeToStateUpdates } from './subscribeToStateUpdates';
import { SearchHeadlessProvider } from './SearchHeadlessProvider';
import { SearchHeadlessContext } from './SearchHeadlessContext';

export * from '@yext/search-headless';
export * from './deprecated';
export {
SearchHeadlessContext,
subscribeToStateUpdates,
useSearchActions,
useSearchState,
useSearchUtilities,
Expand Down
52 changes: 0 additions & 52 deletions src/subscribeToStateUpdates.tsx

This file was deleted.

2 changes: 1 addition & 1 deletion tests/SearchHeadlessProvider.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ jest.mock('@yext/search-headless', () => ({
}))
}));

it('correctly passes through an answers config with sandbox endpoints', () => {
it('correctly passes through a search config with sandbox endpoints', () => {
const config = {
apiKey: '<apiKey>',
experienceKey: '<experienceKey>',
Expand Down
38 changes: 19 additions & 19 deletions tests/useSearchState.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -19,17 +19,17 @@ it('invoke useSearchState outside of SearchHeadlessProvider', () => {
});

it('Retrieves state snapshot during server side rendering and hydration process', () => {
const answers = createAnswersHeadless();
const search = createSearchHeadless();
const mockedOnClick= jest.fn().mockImplementation(() => {
answers.setVertical('anotherFakeKey');
search.setVertical('anotherFakeKey');
});
function Test(): JSX.Element {
const verticalKey = useSearchState(state => state.vertical.verticalKey);
return <button onClick={mockedOnClick}>{verticalKey}</button>;
}
function App(): JSX.Element {
return (
<SearchHeadlessContext.Provider value={answers}>
<SearchHeadlessContext.Provider value={search}>
<Test />
</SearchHeadlessContext.Provider>
);
Expand Down Expand Up @@ -86,13 +86,13 @@ it('does not perform extra renders/listener registrations for nested components'
);
}

const answers = createAnswersHeadless();
const addListenerSpy = jest.spyOn(answers, 'addListener');
const search = createSearchHeadless();
const addListenerSpy = jest.spyOn(search, 'addListener');
expect(addListenerSpy).toHaveBeenCalledTimes(0);
expect(parentStateUpdates).toHaveLength(0);
expect(childStateUpdates).toHaveLength(0);
render(
<SearchHeadlessContext.Provider value={answers}>
<SearchHeadlessContext.Provider value={search}>
<Test />
</SearchHeadlessContext.Provider>
);
Expand Down Expand Up @@ -129,16 +129,16 @@ it('does not trigger render on unmounted component', async () => {
return <div>child component</div>;
}

const answers = createAnswersHeadless();
const search = createSearchHeadless();
render(
<SearchHeadlessContext.Provider value={answers}>
<SearchHeadlessContext.Provider value={search}>
<ParentComponent/>
</SearchHeadlessContext.Provider>
);
act(() => answers.setQuery('resultsWithFilter'));
await act( async () => { await answers.executeUniversalQuery(); });
act(() => answers.setQuery('default'));
await act( async () => { await answers.executeUniversalQuery(); });
act(() => search.setQuery('resultsWithFilter'));
await act( async () => { await search.executeUniversalQuery(); });
act(() => search.setQuery('default'));
await act( async () => { await search.executeUniversalQuery(); });
expect(consoleSpy).not.toHaveBeenCalledWith(
expect.stringMatching('Can\'t perform a React state update on an unmounted component'),
expect.anything(),
Expand All @@ -161,9 +161,9 @@ describe('uses the most recent selector', () => {
);
}

const answers = createAnswersHeadless();
const search = createSearchHeadless();
render(
<SearchHeadlessContext.Provider value={answers}>
<SearchHeadlessContext.Provider value={search}>
<Test />
</SearchHeadlessContext.Provider>
);
Expand Down Expand Up @@ -194,11 +194,11 @@ describe('uses the most recent selector', () => {
);
}

const answers = createAnswersHeadless();
answers.setQuery('initial value');
const search = createSearchHeadless();
search.setQuery('initial value');
expect(stateUpdates).toHaveLength(0);
render(
<SearchHeadlessContext.Provider value={answers}>
<SearchHeadlessContext.Provider value={search}>
<Test />
</SearchHeadlessContext.Provider>
);
Expand All @@ -213,13 +213,13 @@ describe('uses the most recent selector', () => {
expect(stateUpdates).toEqual(['initial value', 1]);

act(() => {
answers.setContext('trigger a state update that would not update the initial selector');
search.setContext('trigger a state update that would not update the initial selector');
});
expect(stateUpdates).toEqual(['initial value', 1, 3]);
});
});

function createAnswersHeadless() {
function createSearchHeadless() {
return provideHeadless({
apiKey: 'fake api key',
experienceKey: 'fake exp key',
Expand Down

0 comments on commit 7d47016

Please sign in to comment.