-
Notifications
You must be signed in to change notification settings - Fork 10.6k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* fix branch * fix deserialize, add filewriter * add catchAll eventGroup/Name * adding simple Redis sender and receiver to eventbus * remove native node threads * improve eventbus * refactor and simplify * more refactoring and syslog client * more refactor, improved endpoints and eventbus * remove local broker and receivers from mvp * destination de/serialization * create MessageEventBusDestinationEntity * db migrations, load destinations at startup * add delete destination endpoint * pnpm merge and circular import fix * delete destination fix * trigger log file shuffle after size reached * add environment variables for eventbus * reworking event messages * serialize to thread fix * some refactor and lint fixing * add emit to eventbus * cleanup and fix sending unsent * quicksave frontend trial * initial EventTree vue component * basic log streaming settings in vue * http request code merge * create destination settings modals * fix eventmessage options types * credentials are loaded * fix and clean up frontend code * move request code to axios * update lock file * merge fix * fix redis build * move destination interfaces into workflow pkg * revive sentry as destination * migration fixes and frontend cleanup * N8N-5777 / N8N-5789 N8N-5788 * N8N-5784 * N8N-5782 removed event levels * N8N-5790 sentry destination cleanup * N8N-5786 and refactoring * N8N-5809 and refactor/cleanup * UI fixes and anonymize renaming * N8N-5837 * N8N-5834 * fix no-items UI issues * remove card / settings label in modal * N8N-5842 fix * disable webhook auth for now and update ui * change sidebar to tabs * remove payload option * extend audit events with more user data * N8N-5853 and UI revert to sidebar * remove redis destination * N8N-5864 / N8N-5868 / N8N-5867 / N8N-5865 * ui and licensing fixes * add node events and info bubbles to frontend * ui wording changes * frontend tests * N8N-5896 and ee rename * improves backend tests * merge fix * fix backend test * make linter happy * remove unnecessary cfg / limit actions to owners * fix multiple sentry DSN and anon bug * eslint fix * more tests and fixes * merge fix * fix workflow audit events * remove 'n8n.workflow.execution.error' event * merge fix * lint fix * lint fix * review fixes * fix merge * prettier fixes * merge * review changes * use loggerproxy * remove catch from internal hook promises * fix tests * lint fix * include review PR changes * review changes * delete duplicate lines from a bad merge * decouple log-streaming UI options from public API * logstreaming -> log-streaming for consistency * do not make unnecessary api calls when log streaming is disabled * prevent sentryClient.close() from being called if init failed * fix the e2e test for log-streaming * review changes * cleanup * use `private` for one last private property * do not use node prefix package names.. just yet * remove unused import * fix the tests because there is a folder called `events`, tsc-alias is messing up all imports for native events module. justkey007/tsc-alias#152 Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <aditya@netroy.in>
- Loading branch information
1 parent
0795cdb
commit b67f803
Showing
104 changed files
with
5,866 additions
and
218 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,120 @@ | ||
import { randFirstName, randLastName } from '@ngneat/falso'; | ||
import { DEFAULT_USER_EMAIL, DEFAULT_USER_PASSWORD } from '../constants'; | ||
import { SettingsLogStreamingPage } from '../pages'; | ||
|
||
const email = DEFAULT_USER_EMAIL; | ||
const password = DEFAULT_USER_PASSWORD; | ||
const firstName = randFirstName(); | ||
const lastName = randLastName(); | ||
const settingsLogStreamingPage = new SettingsLogStreamingPage(); | ||
|
||
describe('Log Streaming Settings', () => { | ||
before(() => { | ||
cy.resetAll(); | ||
cy.setup({ email, firstName, lastName, password }); | ||
}); | ||
|
||
beforeEach(() => { | ||
cy.signin({ email, password }); | ||
}); | ||
|
||
it('should show the unlicensed view when the feature is disabled', () => { | ||
cy.visit('/settings/log-streaming'); | ||
settingsLogStreamingPage.getters.getActionBoxUnlicensed().should('be.visible'); | ||
settingsLogStreamingPage.getters.getContactUsButton().should('be.visible'); | ||
settingsLogStreamingPage.getters.getActionBoxLicensed().should('not.exist'); | ||
}); | ||
|
||
it('should show the licensed view when the feature is enabled', () => { | ||
cy.enableFeature('logStreaming'); | ||
cy.visit('/settings/log-streaming'); | ||
settingsLogStreamingPage.getters.getActionBoxLicensed().should('be.visible'); | ||
settingsLogStreamingPage.getters.getAddFirstDestinationButton().should('be.visible'); | ||
settingsLogStreamingPage.getters.getActionBoxUnlicensed().should('not.exist'); | ||
}); | ||
|
||
it('should show the add destination modal', () => { | ||
cy.visit('/settings/log-streaming'); | ||
settingsLogStreamingPage.actions.clickAddFirstDestination(); | ||
cy.wait(100); | ||
settingsLogStreamingPage.getters.getDestinationModal().should('be.visible'); | ||
settingsLogStreamingPage.getters.getSelectDestinationType().should('be.visible'); | ||
settingsLogStreamingPage.getters.getSelectDestinationButton().should('be.visible'); | ||
settingsLogStreamingPage.getters.getSelectDestinationButton().should('have.attr', 'disabled'); | ||
settingsLogStreamingPage.getters | ||
.getDestinationModalDialog() | ||
.invoke('css', 'width') | ||
.then((widthStr) => parseInt((widthStr as unknown as string).replace('px', ''))) | ||
.should('be.lessThan', 500); | ||
settingsLogStreamingPage.getters.getSelectDestinationType().click(); | ||
settingsLogStreamingPage.getters.getSelectDestinationTypeItems().eq(0).click(); | ||
settingsLogStreamingPage.getters | ||
.getSelectDestinationButton() | ||
.should('not.have.attr', 'disabled'); | ||
settingsLogStreamingPage.getters.getDestinationModal().click(1, 1); | ||
settingsLogStreamingPage.getters.getDestinationModal().should('not.exist'); | ||
}); | ||
|
||
it('should create a destination and delete it', () => { | ||
cy.visit('/settings/log-streaming'); | ||
settingsLogStreamingPage.actions.clickAddFirstDestination(); | ||
cy.wait(100); | ||
settingsLogStreamingPage.getters.getDestinationModal().should('be.visible'); | ||
settingsLogStreamingPage.getters.getSelectDestinationType().click(); | ||
settingsLogStreamingPage.getters.getSelectDestinationTypeItems().eq(0).click(); | ||
settingsLogStreamingPage.getters.getSelectDestinationButton().click(); | ||
settingsLogStreamingPage.getters | ||
.getDestinationNameInput() | ||
.click() | ||
.clear() | ||
.type('Destination 0'); | ||
settingsLogStreamingPage.getters.getDestinationSaveButton().click(); | ||
cy.wait(100); | ||
settingsLogStreamingPage.getters.getDestinationModal().click(1, 1); | ||
cy.reload(); | ||
settingsLogStreamingPage.getters.getDestinationCards().eq(0).click(); | ||
settingsLogStreamingPage.getters.getDestinationDeleteButton().should('be.visible').click(); | ||
cy.get('.el-message-box').should('be.visible').find('.btn--cancel').click(); | ||
settingsLogStreamingPage.getters.getDestinationDeleteButton().click(); | ||
cy.get('.el-message-box').should('be.visible').find('.btn--confirm').click(); | ||
cy.reload(); | ||
}); | ||
|
||
it('should create a destination and delete it via card actions', () => { | ||
cy.visit('/settings/log-streaming'); | ||
settingsLogStreamingPage.actions.clickAddFirstDestination(); | ||
cy.wait(100); | ||
settingsLogStreamingPage.getters.getDestinationModal().should('be.visible'); | ||
settingsLogStreamingPage.getters.getSelectDestinationType().click(); | ||
settingsLogStreamingPage.getters.getSelectDestinationTypeItems().eq(1).click(); | ||
settingsLogStreamingPage.getters.getSelectDestinationButton().click(); | ||
settingsLogStreamingPage.getters | ||
.getDestinationNameInput() | ||
.click() | ||
.clear() | ||
.type('Destination 1'); | ||
settingsLogStreamingPage.getters.getDestinationSaveButton().should('not.have.attr', 'disabled'); | ||
settingsLogStreamingPage.getters.getDestinationSaveButton().click(); | ||
cy.wait(100); | ||
settingsLogStreamingPage.getters.getDestinationModal().click(1, 1); | ||
cy.reload(); | ||
|
||
settingsLogStreamingPage.getters | ||
.getDestinationCards() | ||
.eq(0) | ||
.find('.el-dropdown-selfdefine') | ||
.click(); | ||
cy.get('.el-dropdown-menu').find('.el-dropdown-menu__item').eq(0).click(); | ||
settingsLogStreamingPage.getters.getDestinationSaveButton().should('not.exist'); | ||
settingsLogStreamingPage.getters.getDestinationModal().click(1, 1); | ||
|
||
settingsLogStreamingPage.getters | ||
.getDestinationCards() | ||
.eq(0) | ||
.find('.el-dropdown-selfdefine') | ||
.click(); | ||
cy.get('.el-dropdown-menu').find('.el-dropdown-menu__item').eq(1).click(); | ||
cy.get('.el-message-box').should('be.visible').find('.btn--confirm').click(); | ||
cy.reload(); | ||
}); | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
import { BasePage } from './base'; | ||
|
||
export class SettingsLogStreamingPage extends BasePage { | ||
url = '/settings/log-streaming'; | ||
getters = { | ||
getActionBoxUnlicensed: () => cy.getByTestId('action-box-unlicensed'), | ||
getActionBoxLicensed: () => cy.getByTestId('action-box-licensed'), | ||
getDestinationModal: () => cy.getByTestId('destination-modal'), | ||
getDestinationModalDialog: () => this.getters.getDestinationModal().find('.el-dialog'), | ||
getSelectDestinationType: () => cy.getByTestId('select-destination-type'), | ||
getDestinationNameInput: () => cy.getByTestId('subtitle-showing-type'), | ||
getSelectDestinationTypeItems: () => | ||
this.getters.getSelectDestinationType().find('.el-select-dropdown__item'), | ||
getSelectDestinationButton: () => cy.getByTestId('select-destination-button'), | ||
getContactUsButton: () => this.getters.getActionBoxUnlicensed().find('button'), | ||
getAddFirstDestinationButton: () => this.getters.getActionBoxLicensed().find('button'), | ||
getDestinationSaveButton: () => cy.getByTestId('destination-save-button').find('button'), | ||
getDestinationDeleteButton: () => cy.getByTestId('destination-delete-button'), | ||
getDestinationCards: () => cy.getByTestId('destination-card'), | ||
}; | ||
actions = { | ||
clickContactUs: () => this.getters.getContactUsButton().click(), | ||
clickAddFirstDestination: () => this.getters.getAddFirstDestinationButton().click(), | ||
clickSelectDestinationButton: () => this.getters.getSelectDestinationButton().click(), | ||
}; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.