Тестовые функции в компоненте реагирующего контекста - PullRequest
0 голосов
/ 17 марта 2020

У меня есть базовый c компонент UserContext, который передает две функции - hasPermissions, чтобы проверить, есть ли у текущего пользователя определенное разрешение, и userScope, который возвращает область доступа для текущего пользователя. Также текущий поставщик и функция для обновления пользователя в состоянии компонентов также передаются этим провайдером.

export const UserProvider = ({ children }) => {
  const [user, setUser] = useState({});

  const userScope = useMemo(() => { ... }, [user]);

  const hasPermissions = useCallback((permissions) => { ... }, [user]);

  return (
    <UserContext.Provider
      value={{
        user,
        userScope,
        setUser,
        hasPermissions
      }}
    >
      {children}
    </UserContext.Provider>
  );
};

export function useUser() {
  return React.useContext(UserContext);
}

Как проверить функции hasPermissions и userScope? Каждая статья, с которой я сталкиваюсь о тестировании компонентов контекста React, фокусируется на тестировании поведения потребительского компонента и того, как они обрабатывают ложные значения, поступающие от провайдера, и анализируют выходные данные DOM. Вместо этого я хочу проверить возвращаемые значения этих функций, определенных в UserProvider.

Я действительно новичок в интерфейсе React API, поэтому не уверен, какой должна быть правильная стратегия тестирования. Должен ли я подойти к тестированию этого компонента провайдера, как и любой другой функциональный компонент? Должен ли я переместить userScope и hasPermission к их собственным экспортируемым функциям и проверить их как простые чистые функции? Я просто ищу подходящий план тестирования для запуска. Спасибо!

...