diff --git a/app/javascript/article-form/components/__tests__/ImageUploader.test.jsx b/app/javascript/article-form/components/__tests__/ImageUploader.test.jsx
index 58721d598..3143422ee 100644
--- a/app/javascript/article-form/components/__tests__/ImageUploader.test.jsx
+++ b/app/javascript/article-form/components/__tests__/ImageUploader.test.jsx
@@ -106,9 +106,10 @@ describe('', () => {
},
});
- expect(await findByText(/uploading.../i)).toBeDefined();
+ expect(await findByText(/uploading.../i)).not.toBeNull();
- waitForElementToBeRemoved(() => queryByText(/uploading.../i));
+ // Upload is finished, so the messsage has disappeared.
+ expect(queryByText(/uploading.../i)).toBeNull();
await findByText(/some fake error/i);
});
diff --git a/app/javascript/chat/__tests__/requestManager.test.jsx b/app/javascript/chat/__tests__/requestManager.test.jsx
index f2bacccd0..ba8322870 100644
--- a/app/javascript/chat/__tests__/requestManager.test.jsx
+++ b/app/javascript/chat/__tests__/requestManager.test.jsx
@@ -1,17 +1,48 @@
import { h } from 'preact';
import { render } from '@testing-library/preact';
+import fetch from 'jest-fetch-mock';
+import { axe } from 'jest-axe';
+import { beforeEach } from '@jest/globals';
import RequestManager from '../RequestManager/RequestManager';
-const data = [
- {
- resource: {},
- },
-];
+function getData() {
+ const data = [
+ {
+ resource: {},
+ },
+ ];
+ return data;
+}
+
+// TODO: There needs to be some better tests in here in regards to different data: empty, some data etc.
describe('', () => {
+ beforeEach(() => {
+ const csrfToken = 'this-is-a-csrf-token';
+
+ window.fetch = fetch;
+ window.getCsrfToken = async () => csrfToken;
+
+ fetch.mockResponse(
+ JSON.stringify({
+ result: { user_joining_requests: [], channel_joining_memberships: [] },
+ }),
+ );
+ });
+
+ it('should have no a11y violations', async () => {
+ const { container } = render(
+ ,
+ );
+
+ const results = await axe(container);
+
+ expect(results).toHaveNoViolations();
+ });
+
it('should have the proper elements', () => {
const { queryByText } = render(
- ,
+ ,
);
expect(
diff --git a/app/javascript/onboarding/components/__tests__/FollowUsers.test.jsx b/app/javascript/onboarding/components/__tests__/FollowUsers.test.jsx
index 4c745a9c7..f369b0e84 100644
--- a/app/javascript/onboarding/components/__tests__/FollowUsers.test.jsx
+++ b/app/javascript/onboarding/components/__tests__/FollowUsers.test.jsx
@@ -81,6 +81,8 @@ describe('FollowUsers', () => {
});
it('should render the correct navigation button on first load', () => {
+ fetch.mockResponseOnce(fakeUsersResponse);
+
const { queryByText } = renderFollowUsers();
expect(queryByText(/skip for now/i)).toBeDefined();
diff --git a/app/javascript/utilities/__tests__/search.test.js b/app/javascript/utilities/__tests__/search.test.js
index b14f274c8..604518b29 100644
--- a/app/javascript/utilities/__tests__/search.test.js
+++ b/app/javascript/utilities/__tests__/search.test.js
@@ -248,10 +248,6 @@ describe('Search utilities', () => {
});
describe('fetchSearch', () => {
- it('should return a Promise', () => {
- expect(fetchSearch('tags', { name: 'jav' })).toBeInstanceOf(Promise);
- });
-
it('should return response formatted as JSON', async () => {
const expected = { results: [] };
diff --git a/testSetup.js b/testSetup.js
index 5c10f2d33..a94d77162 100644
--- a/testSetup.js
+++ b/testSetup.js
@@ -1,3 +1,8 @@
/* eslint-env node */
import 'jest-axe/extend-expect';
import './app/assets/javascripts/lib/xss';
+
+process.on('unhandledRejection', (error) => {
+ // Errors thrown here are typically fetch responses that have not been mocked.
+ throw error;
+});