mirror of
https://github.com/n8n-io/n8n.git
synced 2024-11-13 16:14:07 -08:00
596c472ecc
Signed-off-by: Oleg Ivaniv <me@olegivaniv.com> Co-authored-by: Val <68596159+valya@users.noreply.github.com> Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <aditya@netroy.in> Co-authored-by: Valya Bullions <valya@n8n.io> Co-authored-by: Danny Martini <danny@n8n.io> Co-authored-by: Danny Martini <despair.blue@gmail.com> Co-authored-by: Iván Ovejero <ivov.src@gmail.com> Co-authored-by: Omar Ajoue <krynble@gmail.com> Co-authored-by: oleg <me@olegivaniv.com> Co-authored-by: Michael Kret <michael.k@radency.com> Co-authored-by: Michael Kret <88898367+michael-radency@users.noreply.github.com> Co-authored-by: Elias Meire <elias@meire.dev> Co-authored-by: Giulio Andreini <andreini@netseven.it> Co-authored-by: Giulio Andreini <g.andreini@gmail.com> Co-authored-by: Ayato Hayashi <go12limchangyong@gmail.com>
118 lines
4.1 KiB
TypeScript
118 lines
4.1 KiB
TypeScript
import { VariablesPage } from '../pages/variables';
|
|
|
|
const variablesPage = new VariablesPage();
|
|
|
|
describe('Variables', () => {
|
|
it('should show the unlicensed action box when the feature is disabled', () => {
|
|
cy.disableFeature('variables');
|
|
cy.visit(variablesPage.url);
|
|
|
|
variablesPage.getters.unavailableResourcesList().should('be.visible');
|
|
variablesPage.getters.resourcesList().should('not.exist');
|
|
});
|
|
|
|
describe('licensed', () => {
|
|
before(() => {
|
|
cy.enableFeature('variables');
|
|
});
|
|
|
|
beforeEach(() => {
|
|
cy.intercept('GET', '/rest/variables').as('loadVariables');
|
|
cy.intercept('GET', '/rest/login').as('login');
|
|
|
|
cy.visit(variablesPage.url);
|
|
cy.wait(['@loadVariables', '@loadSettings', '@login']);
|
|
});
|
|
|
|
it('should show the licensed action box when the feature is enabled', () => {
|
|
variablesPage.getters.emptyResourcesList().should('be.visible');
|
|
variablesPage.getters.emptyResourcesListNewVariableButton().should('be.visible');
|
|
});
|
|
|
|
it('should create a new variable using empty state row', () => {
|
|
const key = 'ENV_VAR';
|
|
const value = 'value';
|
|
|
|
variablesPage.actions.createVariableFromEmptyState(key, value);
|
|
variablesPage.getters.variableRow(key).should('contain', value).should('be.visible');
|
|
variablesPage.getters.variablesRows().should('have.length', 1);
|
|
});
|
|
|
|
it('should create a new variable using pre-existing state', () => {
|
|
const key = 'ENV_VAR_NEW';
|
|
const value = 'value2';
|
|
|
|
variablesPage.actions.createVariable(key, value);
|
|
variablesPage.getters.variableRow(key).should('contain', value).should('be.visible');
|
|
variablesPage.getters.variablesRows().should('have.length', 2);
|
|
|
|
const otherKey = 'ENV_EXAMPLE';
|
|
const otherValue = 'value3';
|
|
|
|
variablesPage.actions.createVariable(otherKey, otherValue);
|
|
variablesPage.getters
|
|
.variableRow(otherKey)
|
|
.should('contain', otherValue)
|
|
.should('be.visible');
|
|
variablesPage.getters.variablesRows().should('have.length', 3);
|
|
});
|
|
|
|
it('should get validation errors and cancel variable creation', () => {
|
|
const key = 'ENV_VAR_NEW$';
|
|
const value = 'value3';
|
|
|
|
variablesPage.getters.createVariableButton().click();
|
|
const editingRow = variablesPage.getters.variablesEditableRows().eq(0);
|
|
variablesPage.actions.setRowValue(editingRow, 'key', key);
|
|
variablesPage.actions.setRowValue(editingRow, 'value', value);
|
|
editingRow.should('contain', 'This field may contain only letters');
|
|
variablesPage.getters.editableRowSaveButton(editingRow).should('be.disabled');
|
|
variablesPage.actions.cancelRowEditing(editingRow);
|
|
|
|
variablesPage.getters.variablesRows().should('have.length', 3);
|
|
});
|
|
|
|
it('should edit a variable', () => {
|
|
const key = 'ENV_VAR_NEW';
|
|
const newValue = 'value4';
|
|
|
|
variablesPage.actions.editRow(key);
|
|
const editingRow = variablesPage.getters.variablesEditableRows().eq(0);
|
|
variablesPage.actions.setRowValue(editingRow, 'value', newValue);
|
|
variablesPage.actions.saveRowEditing(editingRow);
|
|
|
|
variablesPage.getters.variableRow(key).should('contain', newValue).should('be.visible');
|
|
variablesPage.getters.variablesRows().should('have.length', 3);
|
|
});
|
|
|
|
it('should delete a variable', () => {
|
|
const key = 'TO_DELETE';
|
|
const value = 'xxx';
|
|
|
|
variablesPage.actions.createVariable(key, value);
|
|
variablesPage.actions.deleteVariable(key);
|
|
});
|
|
|
|
it('should search for a variable', () => {
|
|
// One Result
|
|
variablesPage.getters.searchBar().type('NEW');
|
|
variablesPage.getters.variablesRows().should('have.length', 1);
|
|
variablesPage.getters.variableRow('NEW').should('contain.text', 'ENV_VAR_NEW');
|
|
|
|
// Multiple Results
|
|
variablesPage.getters.searchBar().clear().type('ENV_VAR');
|
|
variablesPage.getters.variablesRows().should('have.length', 2);
|
|
|
|
// All Results
|
|
variablesPage.getters.searchBar().clear().type('ENV');
|
|
variablesPage.getters.variablesRows().should('have.length', 3);
|
|
|
|
// No Results
|
|
variablesPage.getters.searchBar().clear().type('Some non-existent variable');
|
|
variablesPage.getters.variablesRows().should('not.exist');
|
|
|
|
cy.contains('No variables found').should('be.visible');
|
|
});
|
|
});
|
|
});
|