tuitio-client-react/tests/hooks/useTuitioToken.test.tsx

69 lines
2.1 KiB
TypeScript
Raw Normal View History

2023-02-12 03:27:22 +02:00
import React from "react";
import { renderHook } from "@testing-library/react-hooks";
import { TuitioContext } from "../../src/contexts";
import { useTuitioToken } from "../../src/hooks";
describe("useTuitioToken: positive flow", () => {
const testState = {
userName: "test-user",
token: "mocked-token",
validUntil: new Date(),
2023-02-12 03:27:22 +02:00
configuration: {
tuitioUrl: null
}
};
testState.validUntil.setHours(testState.validUntil.getHours() + 1);
2023-02-12 03:27:22 +02:00
const wrapper = ({ children }: { children?: React.ReactNode }) => (
<TuitioContext.Provider value={testState}>{children}</TuitioContext.Provider>
);
it("should return the correct token", () => {
2023-02-12 03:27:22 +02:00
const { result } = renderHook(() => useTuitioToken(), { wrapper });
expect(result.current.token).toEqual("mocked-token");
2023-02-12 03:27:22 +02:00
});
it("should return false value for valid", () => {
const { result } = renderHook(() => useTuitioToken(), { wrapper });
expect(result.current.valid).toBe(true);
});
it("validate should return true value", () => {
const { result } = renderHook(() => useTuitioToken(), { wrapper });
const valid = result.current.validate();
expect(valid).toBe(true);
});
});
describe("useTuitioToken: negative flow", () => {
const testState = {
userName: "test-user",
token: null,
validUntil: null,
2023-02-12 03:27:22 +02:00
configuration: {
tuitioUrl: null
}
};
const wrapper = ({ children }: { children?: React.ReactNode }) => (
<TuitioContext.Provider value={testState}>{children}</TuitioContext.Provider>
);
it("should return null for token", () => {
const { result } = renderHook(() => useTuitioToken(), { wrapper });
expect(result.current.token).toBeNull();
});
it("should return false value for valid", () => {
const { result } = renderHook(() => useTuitioToken(), { wrapper });
expect(result.current.valid).toBe(false);
});
it("validate should return false value", () => {
const { result } = renderHook(() => useTuitioToken(), { wrapper });
const valid = result.current.validate();
expect(valid).toBe(false);
});
});