soapbox/src/actions/about.test.ts

45 wiersze
1.3 KiB
TypeScript
Czysty Zwykły widok Historia

2022-01-10 22:01:24 +00:00
import MockAdapter from 'axios-mock-adapter';
import { describe, expect, it } from 'vitest';
import { staticClient } from 'soapbox/api/index.ts';
import { mockStore } from 'soapbox/jest/test-helpers.tsx';
import {
FETCH_ABOUT_PAGE_REQUEST,
FETCH_ABOUT_PAGE_SUCCESS,
2020-06-09 22:22:35 +00:00
FETCH_ABOUT_PAGE_FAIL,
fetchAboutPage,
} from './about.ts';
2020-06-09 22:05:28 +00:00
describe('fetchAboutPage()', () => {
2020-06-09 22:22:35 +00:00
it('creates the expected actions on success', () => {
2021-09-05 19:07:42 +00:00
const mock = new MockAdapter(staticClient);
mock.onGet('/instance/about/index.html')
.reply(200, '<h1>Hello world</h1>');
2020-06-09 22:05:28 +00:00
const expectedActions = [
{ type: FETCH_ABOUT_PAGE_REQUEST, slug: 'index' },
{ type: FETCH_ABOUT_PAGE_SUCCESS, slug: 'index', html: '<h1>Hello world</h1>' },
];
2024-10-28 18:37:16 +00:00
const store = mockStore({});
return store.dispatch(fetchAboutPage()).then(() => {
expect(store.getActions()).toEqual(expectedActions);
});
});
2020-06-09 22:22:35 +00:00
it('creates the expected actions on failure', () => {
const expectedActions = [
{ type: FETCH_ABOUT_PAGE_REQUEST, slug: 'asdf' },
{ type: FETCH_ABOUT_PAGE_FAIL, slug: 'asdf', error: new Error('Request failed with status code 404') },
2020-06-09 22:22:35 +00:00
];
2024-10-28 18:37:16 +00:00
const store = mockStore({});
2020-06-09 22:22:35 +00:00
return store.dispatch(fetchAboutPage('asdf')).catch(() => {
2020-06-09 22:22:35 +00:00
expect(store.getActions()).toEqual(expectedActions);
});
});
});