Skip to content

Commit

Permalink
Merge branch 'master' into sql-editor-support-expressions
Browse files Browse the repository at this point in the history
* master: (54 commits)
  feat: Version control mvp (#6271)
  feat(editor): Implement Resource Mapper component (#6207)
  fix(editor): Update SSO settings styles (#6342)
  fix: Show `Ask AI` only on Code Node (#6336)
  feat(core): Add metadata (customdata) to event log (#6334)
  refactor: Add telemetry to upgrade paths (no-changelog) (#6313)
  fix(Code Node): Fix `item` and `items` alias regression (#6331)
  feat: Add manual login option and password reset link for SSO (#6328)
  fix(editor): Fix Luxon date parsing of ExecutionsUsage component (#6333)
  fix(core): Do not track errored workflow executions for automated executions (no-changelog) (#6322)
  fix(core): Prevent prototype pollution on injectable services (#6309)
  fix(core): Optimize getSharedWorkflowIds query (#6314)
  ci: Reset DB only once per e2e test (no-changelog) (#6216)
  feat(editor): Bring back checklist experiment (no-changelog) (#6307)
  fix: Add ldapts to nodes-base package (no-changelog) (#6315)
  fix(Code Node): Update vm2 to address CVE-2023-32313 (#6318)
  feat: Add tab visibility change detection when polling executions (no-changelog) (#6311)
  fix(editor): Fix locale plularisation if count is 0 (#6312)
  🚀 Release 0.230.0 (#6310)
  fix(Execute Command Node): Block executions when `command` is empty (#6308)
  ...
  • Loading branch information
MiloradFilipovic committed Jun 1, 2023
2 parents 815f3bc + 1b32141 commit 1e65316
Show file tree
Hide file tree
Showing 372 changed files with 11,962 additions and 1,658 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/check-documentation-urls.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ jobs:
run: pnpm install

- name: Build nodes-base
run: pnpm --filter n8n-workflow --filter=n8n-core --filter=n8n-nodes-base build
run: pnpm --filter @n8n/client-oauth2 --filter n8n-workflow --filter n8n-core --filter n8n-nodes-base build

- name: Test URLS
run: node scripts/validate-docs-links.js
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/ci-master.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ jobs:
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v3
with:
files: packages/cli/coverage/cobertura-coverage.xml,packages/core/coverage/cobertura-coverage.xml,packages/design-system/coverage/cobertura-coverage.xml,packages/editor-ui/coverage/cobertura-coverage.xml,packages/nodes-base/coverage/cobertura-coverage.xml,packages/workflow/coverage/cobertura-coverage.xml
files: packages/@n8n/client-oauth2/coverage/cobertura-coverage.xml,packages/cli/coverage/cobertura-coverage.xml,packages/core/coverage/cobertura-coverage.xml,packages/design-system/coverage/cobertura-coverage.xml,packages/editor-ui/coverage/cobertura-coverage.xml,packages/nodes-base/coverage/cobertura-coverage.xml,packages/workflow/coverage/cobertura-coverage.xml

- name: Lint
env:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/ci-postgres-mysql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ jobs:
compose-file: ./.github/docker-compose.yml

- name: Build Core, Workflow, and CLI
run: pnpm --filter n8n-workflow --filter=n8n-core --filter=n8n build
run: pnpm --filter @n8n/client-oauth2 --filter n8n-workflow --filter n8n-core --filter n8n build

- name: Test MySQL
working-directory: packages/cli
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/ci-pull-requests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ jobs:
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v3
with:
files: packages/cli/coverage/cobertura-coverage.xml,packages/core/coverage/cobertura-coverage.xml,packages/design-system/coverage/cobertura-coverage.xml,packages/editor-ui/coverage/cobertura-coverage.xml,packages/nodes-base/coverage/cobertura-coverage.xml,packages/workflow/coverage/cobertura-coverage.xml
files: packages/@n8n/client-oauth2/coverage/cobertura-coverage.xml,packages/cli/coverage/cobertura-coverage.xml,packages/core/coverage/cobertura-coverage.xml,packages/design-system/coverage/cobertura-coverage.xml,packages/editor-ui/coverage/cobertura-coverage.xml,packages/nodes-base/coverage/cobertura-coverage.xml,packages/workflow/coverage/cobertura-coverage.xml

lint:
name: Lint changes
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test-workflows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ jobs:
working-directory: n8n
run: |
pnpm install
pnpm build
pnpm --filter @n8n/client-oauth2 --filter n8n-workflow --filter n8n-core --filter n8n-nodes-base --filter n8n build
shell: bash

- name: Import credentials
Expand Down
37 changes: 37 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,40 @@
# [0.230.0](https://github.com/n8n-io/n8n/compare/n8n@0.229.0...n8n@0.230.0) (2023-05-24)


### Bug Fixes

* **core:** Optimize SharedWorkflow queries ([#6297](https://github.com/n8n-io/n8n/issues/6297)) ([ed7f3b8](https://github.com/n8n-io/n8n/commit/ed7f3b845fe9a7aa0f6e1ff57ae9197057cd8aa1))
* **core:** Prevent app crashes because of unhandled promises in poll and trigger nodes ([#6278](https://github.com/n8n-io/n8n/issues/6278)) ([3750605](https://github.com/n8n-io/n8n/commit/37506050c3f49cececa9da3cf7d420b367f2e055))
* **editor:** Fix canvas loading when page gets restored from bfcache ([#6304](https://github.com/n8n-io/n8n/issues/6304)) ([11477f0](https://github.com/n8n-io/n8n/commit/11477f0a20f82b02d763dbf53e29083dd1e95e87))
* **editor:** Fix design system button with icon vertical alignment ([#6284](https://github.com/n8n-io/n8n/issues/6284)) ([fc580f7](https://github.com/n8n-io/n8n/commit/fc580f7ee80b48a62fc2bebaec9902cd15944ad7))
* **editor:** Fix inverted checks on modal confirmation results ([#6285](https://github.com/n8n-io/n8n/issues/6285)) ([5d2f474](https://github.com/n8n-io/n8n/commit/5d2f4746ea5da977a6532db90c624ded1520ec3e))
* **ERPNext Node:** Fix issue with credential test and add frappe cloud url ([#6283](https://github.com/n8n-io/n8n/issues/6283)) ([2a2b645](https://github.com/n8n-io/n8n/commit/2a2b6452dc326d8979bed0cf47fc54becd746619))
* **Google Calendar Node:** All day option fix ([#6274](https://github.com/n8n-io/n8n/issues/6274)) ([5bef91e](https://github.com/n8n-io/n8n/commit/5bef91e3c84a15a30a893ce3b321b7a8ea926963))
* Initialize license in queue mode correctly ([#6301](https://github.com/n8n-io/n8n/issues/6301)) ([42c79cd](https://github.com/n8n-io/n8n/commit/42c79cd6f1e495e60a9f038403d9a8a761318f52))
* **OpenAI Node:** Descriptive errors ([#6270](https://github.com/n8n-io/n8n/issues/6270)) ([8fdfa3b](https://github.com/n8n-io/n8n/commit/8fdfa3b6b83c6a008d1be778dadcc2172e8a708d))
* Prevent removing manual executions when setting says to save ([#6300](https://github.com/n8n-io/n8n/issues/6300)) ([55b755c](https://github.com/n8n-io/n8n/commit/55b755cb44a3bf9fc9d41af37b7818d3626baf0d))
* **SSH Node:** Private key field as password and credential test ([#6298](https://github.com/n8n-io/n8n/issues/6298)) ([d5c7e6f](https://github.com/n8n-io/n8n/commit/d5c7e6f2cff63337948122a11c3707316c937b9f))
* **SSH Node:** Replace ~ with /home/username ([#6269](https://github.com/n8n-io/n8n/issues/6269)) ([4219490](https://github.com/n8n-io/n8n/commit/421949067b47a25e859fbd45364ba657e7286599))
* **Strapi Node:** Strapi credentials notice ([#6289](https://github.com/n8n-io/n8n/issues/6289)) ([bbe6d4c](https://github.com/n8n-io/n8n/commit/bbe6d4c4dbda0b2cba447cf1b0aa4a7f808096fb))
* **Strava Trigger Node:** Fix issue with delete events failing to display data ([#6277](https://github.com/n8n-io/n8n/issues/6277)) ([8a8fed0](https://github.com/n8n-io/n8n/commit/8a8fed08407f20791ae01ab83e1ce3d99715dc5c))
* **Wekan Node:** Handle response correctly ([#6296](https://github.com/n8n-io/n8n/issues/6296)) ([4d9c8b0](https://github.com/n8n-io/n8n/commit/4d9c8b07a93ea4f2e5ad913358bafb682f6f5506))


### Features

* Add SSO SAML metadataUrl support and various improvements ([#6139](https://github.com/n8n-io/n8n/issues/6139)) ([e3a53fd](https://github.com/n8n-io/n8n/commit/e3a53fd19d8c258a08baab9c090968104327a13b))
* **core:** Remove all floating promises. Enforce `@typescript-eslint/no-floating-promises` ([#6281](https://github.com/n8n-io/n8n/issues/6281)) ([e046f65](https://github.com/n8n-io/n8n/commit/e046f656fefe951af71ab031a440729a5eb1c7cb))
* **core:** Replace client-oauth2 with an in-repo package ([#6266](https://github.com/n8n-io/n8n/issues/6266)) ([a1b1f24](https://github.com/n8n-io/n8n/commit/a1b1f24ddfd4da36f8dd04e34e2675a3993755ca))
* **Execution Data Node:** New node ([#6247](https://github.com/n8n-io/n8n/issues/6247)) ([3f7c4f0](https://github.com/n8n-io/n8n/commit/3f7c4f0ad485a0a4049f371723b01847077f7ccd))
* **Gotify Node:** Add support for self signed certificates ([#6053](https://github.com/n8n-io/n8n/issues/6053)) ([401cffd](https://github.com/n8n-io/n8n/commit/401cffde57aa153bc2d1589bc8d11d7951f2ade1))
* **Ldap Node:** Add LDAP node ([#4783](https://github.com/n8n-io/n8n/issues/4783)) ([ec393bc](https://github.com/n8n-io/n8n/commit/ec393bc041e9e7590e7b0a2821976f104f5c23bb))
* **LoneScale Node:** Add LoneScale node and Trigger node ([#5146](https://github.com/n8n-io/n8n/issues/5146)) ([4b85433](https://github.com/n8n-io/n8n/commit/4b854333d49c661fe11f19a176a147dbf28e697f))
* **RabbitMQ Node:** Add mode for acknowledging and deleting from queue later in workflow ([#6225](https://github.com/n8n-io/n8n/issues/6225)) ([f5950b2](https://github.com/n8n-io/n8n/commit/f5950b201c6ff412b9a304052f05eb2c3b8a7c51))
* **Send Email Node:** Add content-id for email attachments ([#3632](https://github.com/n8n-io/n8n/issues/3632)) ([8fe8aad](https://github.com/n8n-io/n8n/commit/8fe8aad6a77bbec7a26c87f8bad9593852e8d464))
* **SSH Node:** Credentials test ([#6279](https://github.com/n8n-io/n8n/issues/6279)) ([3569d53](https://github.com/n8n-io/n8n/commit/3569d53917b41b758a96293a2b33a06cbf2c0a70))



# [0.229.0](https://github.com/n8n-io/n8n/compare/n8n@0.228.0...n8n@0.229.0) (2023-05-17)


Expand Down
1 change: 0 additions & 1 deletion cypress/e2e/1-workflows.cy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ const multipleWorkflowsCount = 5;

describe('Workflows', () => {
before(() => {
cy.resetAll();
cy.skipSetup();
});

Expand Down
1 change: 0 additions & 1 deletion cypress/e2e/10-settings-log-streaming.cy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ const settingsLogStreamingPage = new SettingsLogStreamingPage();

describe('Log Streaming Settings', () => {
before(() => {
cy.resetAll();
cy.setup({ email, firstName, lastName, password });
});

Expand Down
1 change: 0 additions & 1 deletion cypress/e2e/10-undo-redo.cy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ const ndv = new NDV();

describe('Undo/Redo', () => {
before(() => {
cy.resetAll();
cy.skipSetup();
});

Expand Down
1 change: 0 additions & 1 deletion cypress/e2e/11-inline-expression-editor.cy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ const WorkflowPage = new WorkflowPageClass();

describe('Inline expression editor', () => {
before(() => {
cy.resetAll();
cy.skipSetup();
});

Expand Down
1 change: 0 additions & 1 deletion cypress/e2e/12-canvas-actions.cy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ import { WorkflowPage as WorkflowPageClass } from '../pages/workflow';
const WorkflowPage = new WorkflowPageClass();
describe('Canvas Actions', () => {
before(() => {
cy.resetAll();
cy.skipSetup();
});

Expand Down
1 change: 0 additions & 1 deletion cypress/e2e/12-canvas.cy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ const RENAME_NODE_NAME = 'Something else';

describe('Canvas Node Manipulation and Navigation', () => {
before(() => {
cy.resetAll();
cy.skipSetup();
});

Expand Down
1 change: 0 additions & 1 deletion cypress/e2e/13-pinning.cy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ const ndv = new NDV();

describe('Data pinning', () => {
before(() => {
cy.resetAll();
cy.skipSetup();
});

Expand Down
1 change: 0 additions & 1 deletion cypress/e2e/14-data-transformation-expressions.cy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ const ndv = new NDV();

describe('Data transformation expressions', () => {
before(() => {
cy.resetAll();
cy.skipSetup();
});

Expand Down
1 change: 0 additions & 1 deletion cypress/e2e/14-mapping.cy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ const ndv = new NDV();

describe('Data mapping', () => {
before(() => {
cy.resetAll();
cy.skipSetup();
});

Expand Down
7 changes: 5 additions & 2 deletions cypress/e2e/15-scheduler-node.cy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,14 @@ const workflowPage = new WorkflowPage();
const ndv = new NDV();

describe('Schedule Trigger node', async () => {
beforeEach(() => {
cy.resetAll();
before(() => {
cy.skipSetup();
});

beforeEach(() => {
workflowPage.actions.visit();
});

it('should execute and return the execution timestamp', () => {
workflowPage.actions.addInitialNodeToCanvas('Schedule Trigger');
workflowPage.actions.openNode('Schedule Trigger');
Expand Down
1 change: 0 additions & 1 deletion cypress/e2e/16-webhook-node.cy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,6 @@ const simpleWebhookCall = (options: SimpleWebhookCallOptions) => {

describe('Webhook Trigger node', async () => {
before(() => {
cy.resetAll();
cy.skipSetup();
});

Expand Down
1 change: 0 additions & 1 deletion cypress/e2e/17-sharing.cy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,6 @@ const users = [

describe('Sharing', () => {
before(() => {
cy.resetAll();
cy.setupOwner(instanceOwner);
});

Expand Down
45 changes: 23 additions & 22 deletions cypress/e2e/17-workflow-tags.cy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,51 +2,52 @@ import { WorkflowPage } from '../pages';

const wf = new WorkflowPage();

const TEST_TAGS = ['Tag 1', 'Tag 2', 'Tag 3'];
const TEST_TAGS = ['Tag 1', 'Tag 2', 'Tag 3', 'Tag 4', 'Tag 5'];

describe('Workflow tags', () => {
beforeEach(() => {
cy.resetAll();
before(() => {
cy.skipSetup();
});

beforeEach(() => {
wf.actions.visit();
});

it('should create and attach tags inline', () => {
wf.getters.createTagButton().click();
wf.actions.addTags(TEST_TAGS);
wf.getters.tagPills().should('have.length', TEST_TAGS.length);
wf.actions.addTags(TEST_TAGS.slice(0, 2));
wf.getters.tagPills().should('have.length', 2);
wf.getters.nthTagPill(1).click();
wf.actions.addTags('Tag 4');
wf.getters.tagPills().should('have.length', TEST_TAGS.length + 1);
wf.actions.addTags(TEST_TAGS[2]);
wf.getters.tagPills().should('have.length', 3);
wf.getters.isWorkflowSaved();
});

it('should create tags via modal', () => {
wf.actions.openTagManagerModal();

const [first, second] = TEST_TAGS;

cy.contains('Create a tag').click();
cy.getByTestId('tags-table').find('input').type(first).type('{enter}');
cy.contains('Add new').click();
cy.wait(300);
cy.getByTestId('tags-table').find('input').type(second).type('{enter}');
const tags = TEST_TAGS.slice(3);
for (const tag of tags) {
cy.contains('Add new').click();
cy.getByTestId('tags-table').find('input').type(tag).type('{enter}');
cy.wait(300);
}
cy.contains('Done').click();

wf.getters.createTagButton().click();
wf.getters.tagsInDropdown().should('have.length', 2); // two stored
wf.getters.tagsInDropdown().should('have.length', 5);
wf.getters.tagPills().should('have.length', 0); // none attached
});

it('should delete a tag via modal', () => {
it('should delete all tags via modal', () => {
wf.actions.openTagManagerModal();

const [first] = TEST_TAGS;
TEST_TAGS.forEach(() => {
cy.getByTestId('delete-tag-button').first().click({ force: true });
cy.contains('Delete tag').click();
cy.wait(300);
});

cy.contains('Create a tag').click();
cy.getByTestId('tags-table').find('input').type(first).type('{enter}');
cy.getByTestId('delete-tag-button').click({ force: true });
cy.wait(300);
cy.contains('Delete tag').click();
cy.contains('Done').click();
wf.getters.createTagButton().click();
wf.getters.tagsInDropdown().should('have.length', 0); // none stored
Expand Down
1 change: 0 additions & 1 deletion cypress/e2e/18-user-management.cy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,6 @@ const personalSettingsPage = new PersonalSettingsPage();

describe('User Management', () => {
before(() => {
cy.resetAll();
cy.setupOwner(instanceOwner);
});

Expand Down
8 changes: 5 additions & 3 deletions cypress/e2e/19-execution.cy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,14 @@ const workflowPage = new WorkflowPageClass();
const ndv = new NDV();

describe('Execution', () => {
beforeEach(() => {
cy.resetAll();
before(() => {
cy.skipSetup();
});

beforeEach(() => {
workflowPage.actions.visit();
});

it('should test manual workflow', () => {
cy.createFixtureWorkflow('Manual_wait_set.json', `Manual wait set ${uuid()}`);

Expand Down Expand Up @@ -264,7 +267,6 @@ describe('Execution', () => {
.canvasNodeByName('Set')
.within(() => cy.get('.fa-check').should('not.exist'));


// Check canvas nodes after workflow stopped
workflowPage.getters
.canvasNodeByName('Webhook')
Expand Down
1 change: 0 additions & 1 deletion cypress/e2e/2-credentials.cy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ const NEW_CREDENTIAL_NAME = 'Something else';

describe('Credentials', () => {
before(() => {
cy.resetAll();
cy.skipSetup();
});

Expand Down
1 change: 0 additions & 1 deletion cypress/e2e/20-workflow-executions.cy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ const executionsTab = new WorkflowExecutionsTab();
// Test suite for executions tab
describe('Current Workflow Executions', () => {
before(() => {
cy.resetAll();
cy.skipSetup();
});

Expand Down
1 change: 0 additions & 1 deletion cypress/e2e/21-community-nodes.cy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ const workflowPage = new WorkflowPage();
// We want to keep the other tests as fast as possible so we don't want to break the cache in those.
describe('Community Nodes', () => {
before(() => {
cy.resetAll();
cy.skipSetup();
})
beforeEach(() => {
Expand Down
6 changes: 3 additions & 3 deletions cypress/e2e/22-user-activation-modal.cy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,11 @@ const userActivationSurveyModal = new UserActivationSurveyModal();
const BASE_WEBHOOK_URL = 'http://localhost:5678/webhook';

describe('User activation survey', () => {
it('Should show activation survey', () => {
cy.resetAll();

before(() => {
cy.skipSetup();
});

it('Should show activation survey', () => {
cy.intercept('GET', '/rest/settings', (req) => {
req.reply(SettingsWithActivationModalEnabled);
});
Expand Down
1 change: 0 additions & 1 deletion cypress/e2e/23-variables.cy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ const lastName = randLastName();

describe('Variables', () => {
before(() => {
cy.resetAll();
cy.setup({ email, firstName, lastName, password });
});

Expand Down
3 changes: 1 addition & 2 deletions cypress/e2e/24-ndv-paired-item.cy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,9 @@ const ndv = new NDV();

describe('NDV', () => {
before(() => {
cy.resetAll();
cy.skipSetup();

});

beforeEach(() => {
workflowPage.actions.visit();
workflowPage.actions.renameWorkflow(uuid());
Expand Down
6 changes: 4 additions & 2 deletions cypress/e2e/25-stickies.cy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,11 @@ function checkStickiesStyle( top: number, left: number, height: number, width: n
}

describe('Canvas Actions', () => {
beforeEach(() => {
cy.resetAll();
before(() => {
cy.skipSetup();
});

beforeEach(() => {
workflowPage.actions.visit();

cy.window().then(
Expand Down
1 change: 0 additions & 1 deletion cypress/e2e/26-resource-locator.cy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ const INVALID_CREDENTIALS_MESSAGE = 'Please check your credential';

describe('Resource Locator', () => {
before(() => {
cy.resetAll();
cy.skipSetup();
});

Expand Down
1 change: 0 additions & 1 deletion cypress/e2e/3-default-owner.cy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@ const lastName = randLastName();

describe('Default owner', () => {
it('should be able to create workflows', () => {
cy.resetAll();
cy.skipSetup();
cy.createFixtureWorkflow('Test_workflow_1.json', `Test workflow`);

Expand Down
2 changes: 0 additions & 2 deletions cypress/e2e/4-node-creator.cy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,8 @@ const nodeCreatorFeature = new NodeCreator();
const WorkflowPage = new WorkflowPageClass();
const NDVModal = new NDV();


describe('Node Creator', () => {
before(() => {
cy.resetAll();
cy.skipSetup();
});

Expand Down
Loading

0 comments on commit 1e65316

Please sign in to comment.