Files
n8n-enterprise-unlocked/packages/nodes-base/nodes/Wordpress/__tests__/GenericFunctions.test.ts

58 lines
1.7 KiB
TypeScript

import { NodeApiError } from 'n8n-workflow';
import { wordpressApiRequest, wordpressApiRequestAllItems } from '../GenericFunctions';
describe('Wordpress > GenericFunctions', () => {
const mockFunctions: any = {
helpers: {
requestWithAuthentication: jest.fn(),
},
getCredentials: jest.fn().mockResolvedValue({
url: 'http://example.com',
allowUnauthorizedCerts: false,
}),
getNode: jest.fn(),
};
beforeEach(() => {
jest.clearAllMocks();
});
describe('wordpressApiRequest', () => {
it('should make a successful request', async () => {
mockFunctions.helpers.requestWithAuthentication.mockResolvedValue({ data: 'testData' });
const result = await wordpressApiRequest.call(mockFunctions, 'GET', '/posts', {}, {});
expect(result).toEqual({ data: 'testData' });
expect(mockFunctions.helpers.requestWithAuthentication).toHaveBeenCalled();
});
it('should throw NodeApiError on failure', async () => {
mockFunctions.helpers.requestWithAuthentication.mockRejectedValue({ message: 'fail' });
await expect(
wordpressApiRequest.call(mockFunctions, 'GET', '/posts', {}, {}),
).rejects.toThrow(NodeApiError);
});
});
describe('wordpressApiRequestAllItems', () => {
it('should accumulate all pages', async () => {
mockFunctions.helpers.requestWithAuthentication
.mockResolvedValueOnce({
body: [{ post: 1 }],
headers: {
'x-wp-totalpages': '2',
},
})
.mockResolvedValueOnce({
body: [{ post: 2 }],
headers: {
'x-wp-totalpages': '2',
},
});
const results = await wordpressApiRequestAllItems.call(mockFunctions, 'GET', '/posts');
expect(results).toEqual([{ post: 1 }, { post: 2 }]);
});
});
});