Files
LingvAI/tests/utils/reducer.test.ts
David ea8c1bad57 Blocking behaviour while typing fixed + added spinner (#6)
* Some README tweaks

* Next's staticProps blocking beheaviour while typing fixed + Added spinner

* Testing for previous fix

* Faker deprecational update
2021-04-01 15:40:25 +02:00

66 lines
1.7 KiB
TypeScript

import faker from "faker";
import langReducer, { Actions, initialState } from "../../utils/reducer";
it("changes a field value", () => {
const query = faker.random.words();
const res = langReducer(initialState, {
type: Actions.SET_FIELD,
payload: {
key: "query",
value: query
}
});
expect(res).toStrictEqual({ ...initialState, query });
});
it("changes all fields", () => {
const query = faker.random.words();
const state = {
source: faker.random.locale(),
target: faker.random.locale(),
query,
delayedQuery: query,
translation: faker.random.words(),
isLoading: faker.datatype.boolean()
};
const res = langReducer(initialState, {
type: Actions.SET_ALL,
payload: { state }
});
expect(res).toStrictEqual(state);
});
it("switches the languages & the translations", () => {
const state = {
...initialState,
source: "es",
target: "ca",
query: faker.random.words(),
translation: faker.random.words()
};
const res = langReducer(state, { type: Actions.SWITCH_LANGS });
expect(res).toStrictEqual({
source: state.target,
target: state.source,
query: state.translation,
delayedQuery: state.translation,
translation: "",
isLoading: initialState.isLoading
});
});
it("resets the source while switching if they're the same", () => {
const state = {
...initialState,
source: "eo",
target: "eo"
};
const res = langReducer(state, { type: Actions.SWITCH_LANGS });
expect(res.source).toStrictEqual(initialState.source);
expect(res.target).toStrictEqual(state.source);
});