mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-17 01:56:46 +00:00
refactor: Overhaul nodes-testing setup - Part 1 (no-changelog) (#14303)
This commit is contained in:
committed by
GitHub
parent
f85b851851
commit
73e8d76e13
@@ -2,27 +2,19 @@ import type {
|
||||
ICredentialDataDecryptedObject,
|
||||
IDataObject,
|
||||
IHttpRequestOptions,
|
||||
WorkflowTestData,
|
||||
} from 'n8n-workflow';
|
||||
import { NodeConnectionTypes } from 'n8n-workflow';
|
||||
import nock from 'nock';
|
||||
|
||||
import { CredentialsHelper } from '@test/nodes/credentials-helper';
|
||||
import { executeWorkflow } from '@test/nodes/ExecuteWorkflow';
|
||||
import * as Helpers from '@test/nodes/Helpers';
|
||||
import type { WorkflowTestData } from '@test/nodes/types';
|
||||
|
||||
import { gongApiResponse, gongNodeResponse } from './mocks';
|
||||
import { FAKE_CREDENTIALS_DATA } from '../../../test/nodes/FakeCredentialsMap';
|
||||
|
||||
describe('Gong Node', () => {
|
||||
const baseUrl = 'https://api.gong.io';
|
||||
|
||||
beforeEach(() => {
|
||||
// https://github.com/nock/nock/issues/2057#issuecomment-663665683
|
||||
if (!nock.isActive()) {
|
||||
nock.activate();
|
||||
}
|
||||
});
|
||||
|
||||
describe('Credentials', () => {
|
||||
const tests: WorkflowTestData[] = [
|
||||
{
|
||||
@@ -121,12 +113,39 @@ describe('Gong Node', () => {
|
||||
],
|
||||
},
|
||||
},
|
||||
nock: {
|
||||
baseUrl,
|
||||
mocks: [
|
||||
{
|
||||
method: 'post',
|
||||
path: '/v2/calls/extensive',
|
||||
requestBody: { filter: { callIds: ['7782342274025937895'] } },
|
||||
statusCode: 200,
|
||||
responseBody: {
|
||||
...gongApiResponse.postCallsExtensive,
|
||||
records: {},
|
||||
calls: [{ metaData: gongApiResponse.postCallsExtensive.calls[0].metaData }],
|
||||
},
|
||||
},
|
||||
{
|
||||
method: 'post',
|
||||
path: '/v2/calls/extensive',
|
||||
requestBody: { filter: { callIds: ['7782342274025937896'] } },
|
||||
statusCode: 200,
|
||||
responseBody: {
|
||||
...gongApiResponse.postCallsExtensive,
|
||||
records: {},
|
||||
calls: [{ metaData: gongApiResponse.postCallsExtensive.calls[0].metaData }],
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
];
|
||||
|
||||
beforeAll(() => {
|
||||
jest
|
||||
.spyOn(Helpers.CredentialsHelper.prototype, 'authenticate')
|
||||
.spyOn(CredentialsHelper.prototype, 'authenticate')
|
||||
.mockImplementation(
|
||||
async (
|
||||
credentials: ICredentialDataDecryptedObject,
|
||||
@@ -159,35 +178,8 @@ describe('Gong Node', () => {
|
||||
);
|
||||
});
|
||||
|
||||
nock(baseUrl)
|
||||
.post('/v2/calls/extensive', { filter: { callIds: ['7782342274025937895'] } })
|
||||
.matchHeader(
|
||||
'authorization',
|
||||
'basic ' +
|
||||
Buffer.from(
|
||||
`${FAKE_CREDENTIALS_DATA.gongApi.accessKey}:${FAKE_CREDENTIALS_DATA.gongApi.accessKeySecret}`,
|
||||
).toString('base64'),
|
||||
)
|
||||
.reply(200, {
|
||||
...gongApiResponse.postCallsExtensive,
|
||||
records: {},
|
||||
calls: [{ metaData: gongApiResponse.postCallsExtensive.calls[0].metaData }],
|
||||
})
|
||||
.post('/v2/calls/extensive', { filter: { callIds: ['7782342274025937896'] } })
|
||||
.matchHeader(
|
||||
'authorization',
|
||||
'bearer ' + FAKE_CREDENTIALS_DATA.gongOAuth2Api.oauthTokenData.access_token,
|
||||
)
|
||||
.reply(200, {
|
||||
...gongApiResponse.postCallsExtensive,
|
||||
records: {},
|
||||
calls: [{ metaData: gongApiResponse.postCallsExtensive.calls[0].metaData }],
|
||||
});
|
||||
|
||||
const nodeTypes = Helpers.setup(tests);
|
||||
|
||||
test.each(tests)('$description', async (testData) => {
|
||||
const { result } = await executeWorkflow(testData, nodeTypes);
|
||||
const { result } = await executeWorkflow(testData);
|
||||
const resultNodeData = Helpers.getResultNodeData(result, testData);
|
||||
resultNodeData.forEach(({ nodeName, resultData }) =>
|
||||
expect(resultData).toEqual(testData.output.nodeData[nodeName]),
|
||||
@@ -780,10 +772,8 @@ describe('Gong Node', () => {
|
||||
},
|
||||
];
|
||||
|
||||
const nodeTypes = Helpers.setup(tests);
|
||||
|
||||
test.each(tests)('$description', async (testData) => {
|
||||
const { result } = await executeWorkflow(testData, nodeTypes);
|
||||
const { result } = await executeWorkflow(testData);
|
||||
|
||||
if (testData.description === 'should handle error response') {
|
||||
// Only matches error message
|
||||
@@ -1051,10 +1041,8 @@ describe('Gong Node', () => {
|
||||
},
|
||||
];
|
||||
|
||||
const nodeTypes = Helpers.setup(tests);
|
||||
|
||||
test.each(tests)('$description', async (testData) => {
|
||||
const { result } = await executeWorkflow(testData, nodeTypes);
|
||||
const { result } = await executeWorkflow(testData);
|
||||
|
||||
if (testData.description === 'should handle error response') {
|
||||
expect(() => Helpers.getResultNodeData(result, testData)).toThrow(
|
||||
|
||||
Reference in New Issue
Block a user