-
Notifications
You must be signed in to change notification settings - Fork 3.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(ui): adding the ability to view just the output section #15674
Changes from all commits
6f7cd59
a93f5ec
a6b06a4
2cc48e0
d84deea
5d0fce6
3d73719
28a5c06
dea9ad8
d31b388
78e9115
d9c0468
04e5c5c
dc89dd7
6746001
63171fd
c1ed6f8
3cd80ff
f606df4
3b8cf63
4feb300
379cb2e
3485af4
f1ac731
1d18bce
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,8 @@ | ||
import {Organization} from '../../src/types' | ||
|
||
// a generous commitment to delivering this page in a loaded state | ||
const PAGE_LOAD_SLA = 10000 | ||
|
||
const measurement = 'my_meas' | ||
const field = 'my_field' | ||
describe('Checks', () => { | ||
|
@@ -18,6 +21,7 @@ describe('Checks', () => { | |
cy.visit(`${orgs}/${id}${alerting}`) | ||
}) | ||
}) | ||
cy.get('[data-testid="resource-list--body"]', {timeout: PAGE_LOAD_SLA}) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. wait for a test agnostic load event to signal that the tests are ready to run |
||
}) | ||
|
||
it('can validate a threshold check', () => { | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,8 @@ | ||
import {Organization} from '../../src/types' | ||
|
||
// a generous commitment to delivering this page in a loaded state | ||
const PAGE_LOAD_SLA = 10000 | ||
|
||
describe('Collectors', () => { | ||
beforeEach(() => { | ||
cy.flush() | ||
|
@@ -14,48 +17,38 @@ describe('Collectors', () => { | |
cy.visit(`${orgs}/${id}/load-data/telegrafs`) | ||
}) | ||
}) | ||
|
||
cy.get('[data-testid="resource-list--body"]', {timeout: PAGE_LOAD_SLA}) | ||
}) | ||
|
||
describe('from the org view', () => { | ||
it('can create a telegraf config', () => { | ||
const newConfig = 'New Config' | ||
const configDescription = 'This is a new config testing' | ||
|
||
cy.getByTestID('table-row') | ||
.should('have.length', 0) | ||
.then(() => { | ||
cy.contains('Create Configuration') | ||
cy.getByTestID('table-row').should('have.length', 0) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. i just moved this test outside of the |
||
cy.contains('Create Configuration').click() | ||
cy.getByTestID('overlay--container').within(() => { | ||
cy.getByTestID('telegraf-plugins--System').click() | ||
cy.getByTestID('next').click() | ||
cy.getByInputName('name') | ||
.clear() | ||
.type(newConfig) | ||
cy.getByInputName('description') | ||
.clear() | ||
.type(configDescription) | ||
cy.get('.cf-button') | ||
.contains('Create and Verify') | ||
.click() | ||
cy.getByTestID('streaming').within(() => { | ||
cy.get('.cf-button') | ||
.contains('Listen for Data') | ||
.click() | ||
.then(() => { | ||
cy.getByTestID('overlay--container').within(() => { | ||
cy.getByTestID('telegraf-plugins--System') | ||
.click() | ||
.then(() => { | ||
cy.getByTestID('next') | ||
.click() | ||
.then(() => { | ||
cy.getByInputName('name') | ||
.clear() | ||
.type(newConfig) | ||
cy.getByInputName('description') | ||
.clear() | ||
.type(configDescription) | ||
cy.get('.cf-button') | ||
.contains('Create and Verify') | ||
.click() | ||
cy.getByTestID('streaming').within(() => { | ||
cy.get('.cf-button') | ||
.contains('Listen for Data') | ||
.click() | ||
}) | ||
cy.get('.cf-button') | ||
.contains('Finish') | ||
.click() | ||
}) | ||
}) | ||
}) | ||
}) | ||
}) | ||
cy.get('.cf-button') | ||
.contains('Finish') | ||
.click() | ||
}) | ||
|
||
cy.fixture('user').then(({bucket}) => { | ||
cy.getByTestID('resource-card') | ||
|
@@ -65,6 +58,54 @@ describe('Collectors', () => { | |
}) | ||
}) | ||
|
||
it('allows the user to view just the output', () => { | ||
const bucketz = ['MO_buckets', 'EZ_buckets', 'Bucky'] | ||
const [firstBucket, secondBucket, thirdBucket] = bucketz | ||
|
||
cy.get<Organization>('@org').then(({id, name}: Organization) => { | ||
cy.createBucket(id, name, firstBucket) | ||
cy.createBucket(id, name, secondBucket) | ||
cy.createBucket(id, name, thirdBucket) | ||
}) | ||
|
||
cy.reload() | ||
cy.get('[data-testid="resource-list--body"]', {timeout: PAGE_LOAD_SLA}) | ||
|
||
cy.getByTestID('button--output-only').click() | ||
cy.getByTestID('overlay--container') | ||
.should('be.visible') | ||
.within(() => { | ||
const buckets = bucketz.slice(0).sort((a, b) => { | ||
const _a = a.toLowerCase() | ||
const _b = b.toLowerCase() | ||
return _a > _b ? 1 : _a < _b ? -1 : 0 | ||
}) | ||
|
||
cy.get('code').should($el => { | ||
const text = $el.text() | ||
|
||
expect(text.includes('[[outputs.influxdb_v2]]')).to.be.true | ||
//expect a default sort to be applied | ||
expect(text.includes(`bucket = "${buckets[0]}"`)).to.be.true | ||
}) | ||
|
||
cy.getByTestID('bucket-dropdown').within(() => { | ||
cy.getByTestID('bucket-dropdown--button').click() | ||
cy.getByTestID('dropdown-item') | ||
.eq(2) | ||
.click() | ||
}) | ||
|
||
cy.get('code').should($el => { | ||
const text = $el.text() | ||
|
||
// NOTE: this index is off because there is a default | ||
// defbuck bucket in there (alex) | ||
expect(text.includes(`bucket = "${buckets[1]}"`)).to.be.true | ||
}) | ||
}) | ||
}) | ||
|
||
describe('when a config already exists', () => { | ||
beforeEach(() => { | ||
const telegrafConfigName = 'New Config' | ||
|
@@ -76,6 +117,7 @@ describe('Collectors', () => { | |
}) | ||
|
||
cy.reload() | ||
cy.get('[data-testid="resource-list--body"]', {timeout: PAGE_LOAD_SLA}) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. always gotta wait for that page to be ready 😬 |
||
}) | ||
|
||
it('can update configuration name and delete a configuration', () => { | ||
|
@@ -84,36 +126,23 @@ describe('Collectors', () => { | |
cy.getByTestID('collector-card--name') | ||
.first() | ||
.trigger('mouseover') | ||
.then(() => { | ||
cy.getByTestID('collector-card--name-button') | ||
.first() | ||
.click() | ||
.then(() => { | ||
cy.getByTestID('collector-card--input') | ||
.type(newConfigName) | ||
.type('{enter}') | ||
.then(() => { | ||
cy.getByTestID('collector-card--name').should( | ||
'contain', | ||
newConfigName | ||
) | ||
}) | ||
}) | ||
}) | ||
cy.getByTestID('collector-card--name-button') | ||
.first() | ||
.click() | ||
cy.getByTestID('collector-card--input') | ||
.type(newConfigName) | ||
.type('{enter}') | ||
cy.getByTestID('collector-card--name').should('contain', newConfigName) | ||
|
||
cy.getByTestID('resource-card').should('have.length', 1) | ||
|
||
cy.getByTestID('context-menu') | ||
.last() | ||
.click() | ||
.then(() => { | ||
cy.getByTestID('context-menu-item') | ||
.last() | ||
.click() | ||
.then(() => { | ||
cy.getByTestID('empty-state').should('exist') | ||
}) | ||
}) | ||
cy.getByTestID('context-menu-item') | ||
.last() | ||
.click() | ||
cy.getByTestID('empty-state').should('exist') | ||
}) | ||
|
||
it('can view setup instructions for a config', () => { | ||
|
@@ -144,111 +173,100 @@ describe('Collectors', () => { | |
cy.createTelegraf(thirdTelegraf, description, id, thirdBucket) | ||
}) | ||
cy.reload() | ||
cy.get('[data-testid="resource-list--body"]', {timeout: PAGE_LOAD_SLA}) | ||
}) | ||
// filter by name | ||
it('can filter telegraf configs and sort by bucket and name', () => { | ||
// fixes https://github.com/influxdata/influxdb/issues/15246 | ||
cy.getByTestID('search-widget').type(firstTelegraf) | ||
cy.getByTestID('resource-card').should('have.length', 1) | ||
cy.getByTestID('resource-card').should('contain', firstTelegraf) | ||
|
||
cy.getByTestID('search-widget') | ||
.type(firstTelegraf) | ||
.then(() => { | ||
cy.getByTestID('resource-card').should('have.length', 1) | ||
cy.getByTestID('resource-card').should('contain', firstTelegraf) | ||
.clear() | ||
.type(secondTelegraf) | ||
cy.getByTestID('resource-card').should('have.length', 1) | ||
cy.getByTestID('resource-card').should('contain', secondTelegraf) | ||
|
||
cy.getByTestID('search-widget') | ||
.clear() | ||
.type(secondTelegraf) | ||
.then(() => { | ||
cy.getByTestID('resource-card').should('have.length', 1) | ||
cy.getByTestID('resource-card').should( | ||
'contain', | ||
secondTelegraf | ||
) | ||
|
||
cy.getByTestID('search-widget') | ||
.clear() | ||
.type(thirdTelegraf) | ||
.then(() => { | ||
cy.getByTestID('resource-card').should('have.length', 1) | ||
cy.getByTestID('resource-card').should( | ||
'contain', | ||
thirdTelegraf | ||
) | ||
|
||
cy.getByTestID('search-widget') | ||
.clear() | ||
.type('should have no results') | ||
.then(() => { | ||
cy.getByTestID('resource-card').should('have.length', 0) | ||
cy.getByTestID('empty-state').should('exist') | ||
|
||
cy.getByTestID('search-widget') | ||
.clear() | ||
.type('a') | ||
.then(() => { | ||
cy.getByTestID('resource-card').should( | ||
'have.length', | ||
2 | ||
) | ||
cy.getByTestID('resource-card').should( | ||
'contain', | ||
firstTelegraf | ||
) | ||
cy.getByTestID('resource-card').should( | ||
'contain', | ||
secondTelegraf | ||
) | ||
cy.getByTestID('resource-card').should( | ||
'not.contain', | ||
thirdTelegraf | ||
) | ||
}) | ||
}) | ||
}) | ||
}) | ||
}) | ||
cy.getByTestID('search-widget') | ||
.clear() | ||
.type(thirdTelegraf) | ||
cy.getByTestID('resource-card').should('have.length', 1) | ||
cy.getByTestID('resource-card').should('contain', thirdTelegraf) | ||
|
||
cy.getByTestID('search-widget') | ||
.clear() | ||
.type('should have no results') | ||
cy.getByTestID('resource-card').should('have.length', 0) | ||
cy.getByTestID('empty-state').should('exist') | ||
|
||
cy.getByTestID('search-widget') | ||
.clear() | ||
.type('a') | ||
cy.getByTestID('resource-card').should('have.length', 2) | ||
cy.getByTestID('resource-card').should('contain', firstTelegraf) | ||
cy.getByTestID('resource-card').should('contain', secondTelegraf) | ||
cy.getByTestID('resource-card').should('not.contain', thirdTelegraf) | ||
|
||
// sort by buckets test here | ||
cy.reload() // clear out filtering state from the previous test | ||
cy.get('[data-testid="resource-list--body"]', {timeout: PAGE_LOAD_SLA}) | ||
|
||
cy.getByTestID('bucket-sorter') | ||
.click() | ||
.then(() => { | ||
bucketz.sort() | ||
// NOTE: this then is just here to let me scope this variable (alex) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. or else it's mutation falls outside of the magic promise chain |
||
const testBucket = bucketz.slice(0).sort() | ||
cy.getByTestID('bucket-name') | ||
.should('have.length', 3) | ||
.each((val, index) => { | ||
const text = val.text() | ||
expect(text).to.include(bucketz[index]) | ||
}) | ||
.then(() => { | ||
cy.getByTestID('bucket-sorter').click() | ||
bucketz.reverse() | ||
cy.getByTestID('bucket-name').each((val, index) => { | ||
const text = val.text() | ||
expect(text).to.include(bucketz[index]) | ||
}) | ||
expect(text).to.include(testBucket[index]) | ||
}) | ||
}) | ||
|
||
cy.getByTestID('bucket-sorter') | ||
.click() | ||
.then(() => { | ||
// NOTE: this then is just here to let me scope this variable (alex) | ||
const testBucket = bucketz | ||
.slice(0) | ||
.sort() | ||
.reverse() | ||
cy.getByTestID('bucket-name').each((val, index) => { | ||
const text = val.text() | ||
expect(text).to.include(testBucket[index]) | ||
}) | ||
}) | ||
|
||
// sort by name test here | ||
cy.reload() // clear out sorting state from previous test | ||
cy.get('[data-testid="resource-list--body"]', {timeout: PAGE_LOAD_SLA}) | ||
|
||
cy.getByTestID('collector-card--name').should('have.length', 3) | ||
|
||
// test to see if telegrafs are initially sorted by name | ||
telegrafs.sort() | ||
|
||
cy.getByTestID('collector-card--name') | ||
.each((val, index) => { | ||
expect(val.text()).to.include(telegrafs[index]) | ||
cy.wait(0).then(() => { | ||
// NOTE: this then is just here to let me scope this variable (alex) | ||
const teletubbies = telegrafs.slice(0).sort() | ||
cy.getByTestID('collector-card--name').each((val, index) => { | ||
expect(val.text()).to.include(teletubbies[index]) | ||
}) | ||
}) | ||
|
||
cy.getByTestID('name-sorter') | ||
.click() | ||
.then(() => { | ||
telegrafs.reverse() | ||
cy.getByTestID('name-sorter') | ||
.click() | ||
.then(() => { | ||
cy.getByTestID('collector-card--name').each((val, index) => { | ||
expect(val.text()).to.include(telegrafs[index]) | ||
}) | ||
}) | ||
// NOTE: this then is just here to let me scope this variable (alex) | ||
const teletubbies = telegrafs | ||
.slice(0) | ||
.sort() | ||
.reverse() | ||
cy.getByTestID('collector-card--name').each((val, index) => { | ||
expect(val.text()).to.include(teletubbies[index]) | ||
}) | ||
}) | ||
}) | ||
}) | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this just unbreaks the test locally for me
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Makes sense, gives it more time to load