Skip to content

Commit

Permalink
Merge branch 'main' into add-vis-regression
Browse files Browse the repository at this point in the history
Signed-off-by: Tyler Ohlsen <ohltyler@amazon.com>
  • Loading branch information
ohltyler authored Jul 22, 2023
2 parents 53570d6 + 57f934c commit d70402e
Show file tree
Hide file tree
Showing 22 changed files with 4,850 additions and 190 deletions.
2 changes: 2 additions & 0 deletions DEVELOPER_GUIDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ If you would like to install and develop OpenSearch Dashboards or its plugins, p

You should have a running instance of OpenSearch Dashboards to run these tests against them. Refer to the [OpenSearch Dashboards Developer guide](https://github.com/opensearch-project/OpenSearch-Dashboards/blob/main/DEVELOPER_GUIDE.md) for details on how to do that.

- Node v16.20.0

### Installation

To install the dependencies run
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"config": {
"name": "Test chime channel",
"description": "A test chime channel",
"config_type": "chime",
"is_enabled": true,
"chime": {
"url": "https://sample-chime-webhook"
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
{
"config": {
"name": "Test recipient group",
"description": "A test email recipient group",
"config_type": "email_group",
"is_enabled": true,
"email_group": {
"recipient_list": [
{
"recipient": "custom.email.1@test.com"
},
{
"recipient": "custom.email.2@test.com"
},
{
"recipient": "custom.email.3@test.com"
},
{
"recipient": "custom.email.4@test.com"
},
{
"recipient": "custom.email.5@test.com"
},
{
"recipient": "custom.email.6@test.com"
}
]
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"config": {
"name": "test-ses-sender",
"description": "A test SES sender",
"config_type": "ses_account",
"is_enabled": true,
"ses_account": {
"region": "us-east-1",
"role_arn": "arn:aws:iam::012345678912:role/NotificationsSESRole",
"from_address": "test@email.com"
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"config": {
"name": "Test slack channel",
"description": "A test slack channel",
"config_type": "slack",
"is_enabled": true,
"slack": {
"url": "https://sample-slack-webhook"
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"config": {
"name": "Test email channel",
"description": "A test SMTP email channel",
"config_type": "email",
"is_enabled": true,
"email": {
"email_account_id": "test_smtp_sender_id",
"recipient_list": [
{
"recipient": "custom.email@test.com"
}
],
"email_group_id_list": []
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"config": {
"name": "test-sns-channel",
"description": "A test SNS channel",
"config_type": "sns",
"is_enabled": true,
"sns": {
"topic_arn": "arn:aws:sns:us-west-2:123456789012:notifications-test",
"role_arn": "arn:aws:iam::012345678901:role/NotificationsSNSRole"
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"config": {
"name": "test-ssl-sender",
"description": "A test SSL SMTP sender",
"config_type": "smtp_account",
"is_enabled": true,
"smtp_account": {
"host": "test-host.com",
"port": 123,
"method": "ssl",
"from_address": "test@email.com"
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"config_id": "test_smtp_sender_id",
"config": {
"name": "test-tls-sender",
"description": "A test TLS SMTP sender",
"config_type": "smtp_account",
"is_enabled": true,
"smtp_account": {
"host": "test-host.com",
"port": 123,
"method": "start_tls",
"from_address": "test@email.com"
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"config": {
"name": "Test webhook channel",
"description": "A test webhook channel",
"config_type": "webhook",
"is_enabled": true,
"webhook": {
"url": "https://custom-webhook-test-url.com:8888/test-path?params1=value1&params2=value2&params3=value3&params4=value4&params5=values5&params6=values6&params7=values7"
}
}
}

Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ export const removeBucket = (bucket) => {

export const testSplitTables = (num) => {
cy.getElementByTestId('visTable')
.should('have.class', `visTable`)
.should('have.class', 'visTable')
.find('[class="visTable__group"]')
.should(($tables) => {
// should have found specified number of tables
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -311,7 +311,7 @@ describe.skip('Split table', () => {
cy.tbSplitTablesInColumns();
cy.tbSetupTermsAggregation('age', 'Descending', '2', 2);
cy.waitForLoader();
cy.get('[class="visTable visTable__groupInColumns"]').should('exist');
cy.get('[class="visTable"]').should('exist');
cy.tbGetAllTableDataFromVisualization(2).then((data) => {
expect(data).to.deep.eq(expectData);
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,21 @@ import {
NOTIFICATIONS_PLUGIN_NAME,
} from '../../../utils/constants';

import testSslSmtpSender from '../../../fixtures/plugins/notifications-dashboards/test_ssl_smtp_sender.json';
import testTlsSmtpSender from '../../../fixtures/plugins/notifications-dashboards/test_tls_smtp_sender.json';
import testSesSender from '../../../fixtures/plugins/notifications-dashboards/test_ses_sender.json';
import testEmailRecipientGroup from '../../../fixtures/plugins/notifications-dashboards/test_email_recipient_group.json';

describe('Test create email senders', () => {
before(() => {
// Delete all Notification configs
cy.deleteAllNotificationConfigs();
});

beforeEach(() => {
cy.visit(`${BASE_PATH}/app/${NOTIFICATIONS_PLUGIN_NAME}#email-senders`);
cy.wait(NOTIFICATIONS_DELAY * 3);
cy.reload(true);
cy.wait(NOTIFICATIONS_DELAY * 5);
});

it('creates ssl sender', () => {
Expand Down Expand Up @@ -62,7 +73,7 @@ describe('Test create email senders', () => {

cy.get('.euiButton__text').contains('Create').click({ force: true });
cy.contains('successfully created.').should('exist');
cy.contains('test-ssl-sender').should('exist');
cy.contains('test-tls-sender').should('exist');
});

it('creates SES sender', () => {
Expand All @@ -89,16 +100,26 @@ describe('Test create email senders', () => {
});

describe('Test edit senders', () => {
before(() => {
// Delete all Notification configs
cy.deleteAllNotificationConfigs();

cy.createNotificationConfig(testSslSmtpSender);
cy.createNotificationConfig(testTlsSmtpSender);
cy.createNotificationConfig(testSesSender);
});

beforeEach(() => {
cy.visit(`${BASE_PATH}/app/${NOTIFICATIONS_PLUGIN_NAME}#email-senders`);
cy.wait(NOTIFICATIONS_DELAY * 3);
cy.reload(true);
cy.wait(NOTIFICATIONS_DELAY * 5);
});

it('edits sender email address', () => {
cy.get('.euiCheckbox__input[aria-label="Select this row"]').eq(0).click(); // ssl sender
cy.get('[data-test-subj="senders-table-edit-button"]').click();
cy.get('[data-test-subj="create-sender-form-email-input"]').type(
'{selectall}{backspace}edited.test@email.com'
'{selectall}{backspace}editedtest@email.com'
);
cy.wait(NOTIFICATIONS_DELAY);

Expand All @@ -120,14 +141,26 @@ describe('Test edit senders', () => {
});

describe('Test delete senders', () => {
before(() => {
// Delete all Notification configs
cy.deleteAllNotificationConfigs();

cy.createNotificationConfig(testSslSmtpSender);
cy.createNotificationConfig(testTlsSmtpSender);
cy.createNotificationConfig(testSesSender);
});

beforeEach(() => {
cy.visit(`${BASE_PATH}/app/${NOTIFICATIONS_PLUGIN_NAME}#email-senders`);
cy.wait(NOTIFICATIONS_DELAY * 3);
cy.reload(true);
cy.wait(NOTIFICATIONS_DELAY * 5);
});

it('deletes smtp senders', () => {
cy.get('.euiCheckbox__input[aria-label="Select this row"]').eq(0).click(); // ssl sender
cy.get('[data-test-subj="senders-table-delete-button"]').click();
cy.get('[data-test-subj="senders-table-delete-button"]').click({
force: true,
});
cy.get('input[placeholder="delete"]').type('delete');
cy.wait(NOTIFICATIONS_DELAY);
cy.get('[data-test-subj="delete-sender-modal-delete-button"]').click();
Expand All @@ -136,7 +169,10 @@ describe('Test delete senders', () => {

it('deletes ses senders', () => {
cy.get('.euiCheckbox__input[aria-label="Select this row"]').last().click(); // ses sender
cy.get('[data-test-subj="ses-senders-table-delete-button"]').click();
cy.wait(NOTIFICATIONS_DELAY);
cy.get('[data-test-subj="ses-senders-table-delete-button"]').click({
force: true,
});
cy.get('input[placeholder="delete"]').type('delete');
cy.wait(NOTIFICATIONS_DELAY);
cy.get('[data-test-subj="delete-sender-modal-delete-button"]').click();
Expand All @@ -148,10 +184,16 @@ describe('Test delete senders', () => {

describe('Test create, edit and delete recipient group', () => {
beforeEach(() => {
// Delete all Notification configs
cy.deleteAllNotificationConfigs();

cy.createNotificationConfig(testEmailRecipientGroup);

cy.visit(
`${BASE_PATH}/app/${NOTIFICATIONS_PLUGIN_NAME}#email-recipient-groups`
);
cy.wait(NOTIFICATIONS_DELAY * 3);
cy.reload(true);
cy.wait(NOTIFICATIONS_DELAY * 5);
});

it('creates recipient group', () => {
Expand Down Expand Up @@ -210,13 +252,18 @@ describe('Test create, edit and delete recipient group', () => {
});

it('opens email addresses popup', () => {
cy.get('.euiLink').contains('1 more').click({ force: true });
cy.get('.euiTableCellContent--overflowingContent .euiLink')
.contains('1 more')
.click({ force: true });
cy.contains('custom.email.6@test.com').should('exist');
});

it('deletes recipient groups', () => {
cy.get('[data-test-subj="checkboxSelectAll"]').last().click();
cy.get('[data-test-subj="recipient-groups-table-delete-button"]').click();
cy.get('[data-test-subj="checkboxSelectAll"]').click({ force: true });
cy.wait(NOTIFICATIONS_DELAY);
cy.get('[data-test-subj="recipient-groups-table-delete-button"]').click({
force: true,
});
cy.get('input[placeholder="delete"]').type('delete');
cy.wait(NOTIFICATIONS_DELAY);
cy.get(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,19 @@ import {
NOTIFICATIONS_PLUGIN_NAME,
} from '../../../utils/constants';

import testSlackChannel from '../../../fixtures/plugins/notifications-dashboards/test_slack_channel.json';
import testChimeChannel from '../../../fixtures/plugins/notifications-dashboards/test_chime_channel.json';
import testWebhookChannel from '../../../fixtures/plugins/notifications-dashboards/test_webhook_channel.json';
import testTlsSmtpSender from '../../../fixtures/plugins/notifications-dashboards/test_tls_smtp_sender.json';

describe('Test create channels', () => {
before(() => {
// Delete all Notification configs
cy.deleteAllNotificationConfigs();

cy.createNotificationConfig(testTlsSmtpSender);
});

beforeEach(() => {
cy.visit(`${BASE_PATH}/app/${NOTIFICATIONS_PLUGIN_NAME}#create-channel`);
cy.wait(NOTIFICATIONS_DELAY * 3);
Expand Down Expand Up @@ -58,7 +70,7 @@ describe('Test create channels', () => {
cy.contains('successfully created.').should('exist');
});

it('creates a email channel', () => {
it('creates an email channel', () => {
cy.get('[placeholder="Enter channel name"]').type('Test email channel');

cy.get('.euiSuperSelectControl').contains('Slack').click({ force: true });
Expand Down Expand Up @@ -96,7 +108,7 @@ describe('Test create channels', () => {
cy.contains('successfully created.').should('exist');
});

it('creates a email channel with ses sender', () => {
it('creates an email channel with ses sender', () => {
cy.get('[placeholder="Enter channel name"]').type(
'Test email channel with ses'
);
Expand Down Expand Up @@ -156,7 +168,7 @@ describe('Test create channels', () => {
cy.contains('successfully created.').should('exist');
});

it('creates a sns channel', () => {
it('creates an sns channel', () => {
cy.get('[placeholder="Enter channel name"]').type('test-sns-channel');

cy.get('.euiSuperSelectControl').contains('Slack').click({ force: true });
Expand All @@ -179,6 +191,17 @@ describe('Test create channels', () => {
});

describe('Test channels table', () => {
before(() => {
// Delete all Notification configs
cy.deleteAllNotificationConfigs();

// Create test channels
cy.createNotificationConfig(testSlackChannel);
cy.createNotificationConfig(testChimeChannel);
cy.createNotificationConfig(testWebhookChannel);
cy.createTestEmailChannel();
});

beforeEach(() => {
cy.visit(`${BASE_PATH}/app/${NOTIFICATIONS_PLUGIN_NAME}#channels`);
cy.wait(NOTIFICATIONS_DELAY * 3);
Expand Down Expand Up @@ -260,6 +283,9 @@ describe('Test channel details', () => {
// cy.get(
// '[data-test-subj="create-channel-description-input"]'
// ).type('{selectall}{backspace}Updated custom webhook description');
cy.get('[data-test-subj="create-channel-description-input"]').type(
'{selectall}{backspace}Updated custom webhook description'
);
cy.get('.euiTextArea').type(
'{selectall}{backspace}Updated custom webhook description'
);
Expand Down
Loading

0 comments on commit d70402e

Please sign in to comment.