refactor: Remove skipped tests (no-changelog) (#9497)
This commit is contained in:
@@ -23,8 +23,6 @@ import type { MessageEventBusDestinationWebhook } from '@/eventbus/MessageEventB
|
||||
import type { MessageEventBusDestinationSentry } from '@/eventbus/MessageEventBusDestination/MessageEventBusDestinationSentry.ee';
|
||||
import { EventMessageAudit } from '@/eventbus/EventMessageClasses/EventMessageAudit';
|
||||
import type { EventNamesTypes } from '@/eventbus/EventMessageClasses';
|
||||
import { EventMessageWorkflow } from '@/eventbus/EventMessageClasses/EventMessageWorkflow';
|
||||
import { EventMessageNode } from '@/eventbus/EventMessageClasses/EventMessageNode';
|
||||
import { ExecutionDataRecoveryService } from '@/eventbus/executionDataRecovery.service';
|
||||
|
||||
import * as utils from './shared/utils';
|
||||
@@ -170,80 +168,6 @@ describe('POST /eventbus/destination', () => {
|
||||
});
|
||||
});
|
||||
|
||||
// this test (presumably the mocking) is causing the test suite to randomly fail
|
||||
// eslint-disable-next-line n8n-local-rules/no-skipped-tests
|
||||
test.skip('should send message to syslog', async () => {
|
||||
const testMessage = new EventMessageGeneric({
|
||||
eventName: 'n8n.test.message' as EventNamesTypes,
|
||||
id: uuid(),
|
||||
});
|
||||
|
||||
const syslogDestination = eventBus.destinations[
|
||||
testSyslogDestination.id!
|
||||
] as MessageEventBusDestinationSyslog;
|
||||
|
||||
syslogDestination.enable();
|
||||
|
||||
const mockedSyslogClientLog = jest.spyOn(syslogDestination.client, 'log');
|
||||
mockedSyslogClientLog.mockImplementation((_m, _options, _cb) => {
|
||||
eventBus.confirmSent(testMessage, {
|
||||
id: syslogDestination.id,
|
||||
name: syslogDestination.label,
|
||||
});
|
||||
return syslogDestination.client;
|
||||
});
|
||||
|
||||
await eventBus.send(testMessage);
|
||||
await new Promise((resolve) => {
|
||||
eventBus.logWriter.worker?.on(
|
||||
'message',
|
||||
async function handler001(msg: { command: string; data: any }) {
|
||||
if (msg.command === 'appendMessageToLog') {
|
||||
await confirmIdInAll(testMessage.id);
|
||||
} else if (msg.command === 'confirmMessageSent') {
|
||||
await confirmIdSent(testMessage.id);
|
||||
expect(mockedSyslogClientLog).toHaveBeenCalled();
|
||||
syslogDestination.disable();
|
||||
eventBus.logWriter.worker?.removeListener('message', handler001);
|
||||
resolve(true);
|
||||
}
|
||||
},
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
// eslint-disable-next-line n8n-local-rules/no-skipped-tests
|
||||
test.skip('should confirm send message if there are no subscribers', async () => {
|
||||
const testMessageUnsubscribed = new EventMessageGeneric({
|
||||
eventName: 'n8n.test.unsub' as EventNamesTypes,
|
||||
id: uuid(),
|
||||
});
|
||||
|
||||
const syslogDestination = eventBus.destinations[
|
||||
testSyslogDestination.id!
|
||||
] as MessageEventBusDestinationSyslog;
|
||||
|
||||
syslogDestination.enable();
|
||||
|
||||
await eventBus.send(testMessageUnsubscribed);
|
||||
|
||||
await new Promise((resolve) => {
|
||||
eventBus.logWriter.worker?.on(
|
||||
'message',
|
||||
async function handler002(msg: { command: string; data: any }) {
|
||||
if (msg.command === 'appendMessageToLog') {
|
||||
await confirmIdInAll(testMessageUnsubscribed.id);
|
||||
} else if (msg.command === 'confirmMessageSent') {
|
||||
await confirmIdSent(testMessageUnsubscribed.id);
|
||||
syslogDestination.disable();
|
||||
eventBus.logWriter.worker?.removeListener('message', handler002);
|
||||
resolve(true);
|
||||
}
|
||||
},
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
test('should anonymize audit message to syslog ', async () => {
|
||||
const testAuditMessage = new EventMessageAudit({
|
||||
eventName: 'n8n.audit.user.updated',
|
||||
@@ -395,57 +319,3 @@ test('DELETE /eventbus/destination delete all destinations by id', async () => {
|
||||
|
||||
expect(Object.keys(eventBus.destinations).length).toBe(0);
|
||||
});
|
||||
|
||||
// These two tests are running very flaky on CI due to the logwriter working in a worker
|
||||
// Mocking everything on the other would defeat the purpose of even testing them... so, skipping in CI for now.
|
||||
// eslint-disable-next-line n8n-local-rules/no-skipped-tests
|
||||
test.skip('should not find unfinished executions in recovery process', async () => {
|
||||
eventBus.logWriter?.putMessage(
|
||||
new EventMessageWorkflow({
|
||||
eventName: 'n8n.workflow.started',
|
||||
payload: { executionId: '509', isManual: false },
|
||||
}),
|
||||
);
|
||||
eventBus.logWriter?.putMessage(
|
||||
new EventMessageNode({
|
||||
eventName: 'n8n.node.started',
|
||||
payload: { executionId: '509', nodeName: 'Set', workflowName: 'test' },
|
||||
}),
|
||||
);
|
||||
eventBus.logWriter?.putMessage(
|
||||
new EventMessageNode({
|
||||
eventName: 'n8n.node.finished',
|
||||
payload: { executionId: '509', nodeName: 'Set', workflowName: 'test' },
|
||||
}),
|
||||
);
|
||||
eventBus.logWriter?.putMessage(
|
||||
new EventMessageWorkflow({
|
||||
eventName: 'n8n.workflow.success',
|
||||
payload: { executionId: '509', success: true },
|
||||
}),
|
||||
);
|
||||
const unfinishedExecutions = await eventBus.getUnfinishedExecutions();
|
||||
|
||||
expect(Object.keys(unfinishedExecutions)).toHaveLength(0);
|
||||
});
|
||||
|
||||
// eslint-disable-next-line n8n-local-rules/no-skipped-tests
|
||||
test.skip('should not find unfinished executions in recovery process', async () => {
|
||||
eventBus.logWriter?.putMessage(
|
||||
new EventMessageWorkflow({
|
||||
eventName: 'n8n.workflow.started',
|
||||
payload: { executionId: '510', isManual: false },
|
||||
}),
|
||||
);
|
||||
eventBus.logWriter?.putMessage(
|
||||
new EventMessageNode({
|
||||
eventName: 'n8n.node.started',
|
||||
payload: { executionId: '510', nodeName: 'Set', workflowName: 'test' },
|
||||
}),
|
||||
);
|
||||
|
||||
const unfinishedExecutions = await eventBus.getUnfinishedExecutions();
|
||||
|
||||
expect(Object.keys(unfinishedExecutions)).toHaveLength(1);
|
||||
expect(Object.keys(unfinishedExecutions)).toContain('510');
|
||||
});
|
||||
|
||||
@@ -227,64 +227,6 @@ describe('GET /executions', () => {
|
||||
expect(waitTill).toBeNull();
|
||||
});
|
||||
|
||||
// failing on Postgres and MySQL - ref: https://github.com/n8n-io/n8n/pull/3834
|
||||
// eslint-disable-next-line n8n-local-rules/no-skipped-tests
|
||||
test.skip('should paginate two executions', async () => {
|
||||
const workflow = await createWorkflow({}, owner);
|
||||
|
||||
const firstSuccessfulExecution = await createSuccessfulExecution(workflow);
|
||||
|
||||
const secondSuccessfulExecution = await createSuccessfulExecution(workflow);
|
||||
|
||||
await createErrorExecution(workflow);
|
||||
|
||||
const firstExecutionResponse = await authOwnerAgent.get('/executions').query({
|
||||
status: 'success',
|
||||
limit: 1,
|
||||
});
|
||||
|
||||
expect(firstExecutionResponse.statusCode).toBe(200);
|
||||
expect(firstExecutionResponse.body.data.length).toBe(1);
|
||||
expect(firstExecutionResponse.body.nextCursor).toBeDefined();
|
||||
|
||||
const secondExecutionResponse = await authOwnerAgent.get('/executions').query({
|
||||
status: 'success',
|
||||
limit: 1,
|
||||
cursor: firstExecutionResponse.body.nextCursor,
|
||||
});
|
||||
|
||||
expect(secondExecutionResponse.statusCode).toBe(200);
|
||||
expect(secondExecutionResponse.body.data.length).toBe(1);
|
||||
expect(secondExecutionResponse.body.nextCursor).toBeNull();
|
||||
|
||||
const successfulExecutions = [firstSuccessfulExecution, secondSuccessfulExecution];
|
||||
const executions = [...firstExecutionResponse.body.data, ...secondExecutionResponse.body.data];
|
||||
|
||||
for (let i = 0; i < executions.length; i++) {
|
||||
const {
|
||||
id,
|
||||
finished,
|
||||
mode,
|
||||
retryOf,
|
||||
retrySuccessId,
|
||||
startedAt,
|
||||
stoppedAt,
|
||||
workflowId,
|
||||
waitTill,
|
||||
} = executions[i];
|
||||
|
||||
expect(id).toBeDefined();
|
||||
expect(finished).toBe(true);
|
||||
expect(mode).toEqual(successfulExecutions[i].mode);
|
||||
expect(retrySuccessId).toBeNull();
|
||||
expect(retryOf).toBeNull();
|
||||
expect(startedAt).not.toBeNull();
|
||||
expect(stoppedAt).not.toBeNull();
|
||||
expect(workflowId).toBe(successfulExecutions[i].workflowId);
|
||||
expect(waitTill).toBeNull();
|
||||
}
|
||||
});
|
||||
|
||||
test('should retrieve all error executions', async () => {
|
||||
const workflow = await createWorkflow({}, owner);
|
||||
|
||||
|
||||
@@ -54,46 +54,4 @@ describe('RedisService', () => {
|
||||
await sub.destroy();
|
||||
await pub.destroy();
|
||||
});
|
||||
|
||||
// NOTE: This test is failing because the mock Redis client does not support streams apparently
|
||||
// eslint-disable-next-line n8n-local-rules/no-skipped-tests
|
||||
test.skip('should create stream producer and consumer', async () => {
|
||||
const consumer = await redisService.getStreamConsumer();
|
||||
const producer = await redisService.getStreamProducer();
|
||||
|
||||
expect(consumer).toBeDefined();
|
||||
expect(producer).toBeDefined();
|
||||
|
||||
const mockHandler = jest.fn();
|
||||
mockHandler.mockImplementation((stream: string, id: string, message: string[]) => {
|
||||
Container.get(Logger).info('Received message', { stream, id, message });
|
||||
});
|
||||
consumer.addMessageHandler('some handler', mockHandler);
|
||||
|
||||
await consumer.setPollingInterval(STREAM_CHANNEL, 50);
|
||||
await consumer.listenToStream(STREAM_CHANNEL);
|
||||
|
||||
let timeout;
|
||||
await new Promise((resolve) => {
|
||||
timeout = setTimeout(async () => {
|
||||
await producer.add(STREAM_CHANNEL, ['message', 'testMessage', 'event', 'testEveny']);
|
||||
resolve(0);
|
||||
}, 50);
|
||||
});
|
||||
|
||||
await new Promise((resolve) =>
|
||||
setTimeout(async () => {
|
||||
resolve(0);
|
||||
}, 100),
|
||||
);
|
||||
|
||||
clearInterval(timeout);
|
||||
|
||||
consumer.stopListeningToStream(STREAM_CHANNEL);
|
||||
|
||||
expect(mockHandler).toHaveBeenCalled();
|
||||
|
||||
await consumer.destroy();
|
||||
await producer.destroy();
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user