如何在酶中测试上下文提供者的状态更新?

时间:2021-05-20 12:12:07

标签: typescript enzyme react-context

假设这是我的代码:


import { ProviderMovies } from 'src/Movies/_ContextMovies';
import SearchMovies from 'src/Movies/SearchMovies';

describe('Search Movies', () => {
  describe('Onload - do first search()', () => {
    beforeAll(async () => {
      wrapper = mount(
          <ProviderMovies>
            <SearchMovies />
          </ProviderMovies>
      );  
      await new Promise((resolve) => setImmediate(resolve));
      await act(
       () =>
        new Promise<void>((resolve) => {
          resolve();
        })
      );
    });
    it('should have: populated Provider context - with movies', async () => {
  

    });
  });
});

Provider.tsx

import React, { useState } from 'react';
import { PropsMovieLight, TAnyHook } from 'src/types';

export type TsetMovies = React.Dispatch<React.SetStateAction<PropsMovieLight[]>>;

export interface PropsContext {
  movies: PropsMovieLight[] | never[];
  setMovies: TsetMovies;
}
const placeholder = {
  movies: [],
  setMovies: () => {}
};

export const ContextMovies = React.createContext<PropsContext>(placeholder);

export const ProviderMovies: React.FC = ({ children }) => {
  const [movies, setMovies] = useState<PropsMovieLight[] | never[]>([]);
  return (
    <ContextMovies.Provider
      value={{
        movies,
        setMovies
      }}
    >
      {children}
    </ContextMovies.Provider>
  );
};

在我的测试中,我想测试我的上下文状态是否已更新。 这里的所有功能都适用于我的应用程序。 我只是想测试电影何时更新以及如何在我的酶测试中访问它? 我如何在此酶测试中获得状态?

0 个答案:

没有答案