У меня есть базовый 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
к их собственным экспортируемым функциям и проверить их как простые чистые функции? Я просто ищу подходящий план тестирования для запуска. Спасибо!