Skip to content

Commit 8b6b58b

Browse files
feat(notebooks): conditionally hide notebooks if specific conditions are met (#6422)
* feat(notebooks): hide or show notebooks based on results from selectShouldShowNotebooks * test: update e2e tests to handle new notebooks deprecation
1 parent df9f83c commit 8b6b58b

File tree

15 files changed

+396
-98
lines changed

15 files changed

+396
-98
lines changed

cypress/e2e/cloud/flows.test.ts

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,11 @@ describe('Flows', () => {
88
cy.fixture('routes').then(({orgs}) => {
99
cy.visit(`${orgs}/${id}`)
1010
cy.getByTestID('version-info').should('be.visible')
11+
12+
cy.createNotebook(id).then(() => {
13+
cy.reload()
14+
})
15+
1116
cy.getByTestID('nav-item-flows').should('be.visible')
1217
cy.getByTestID('nav-item-flows').click()
1318
})
@@ -104,7 +109,7 @@ describe('Flows', () => {
104109

105110
cy.clickNavBarItem('nav-item-flows')
106111

107-
cy.get('.cf-resource-card').should('have.length', 1)
112+
cy.get('.cf-resource-card').should('have.length', 2)
108113

109114
cy.getByTestID('resource-editable-name').contains(`${flowName}`)
110115

@@ -133,7 +138,7 @@ describe('Flows', () => {
133138

134139
cy.clickNavBarItem('nav-item-flows')
135140

136-
cy.get('.cf-resource-card').should('have.length', 2)
141+
cy.get('.cf-resource-card').should('have.length', 3)
137142
cy.get('.cf-resource-editable-name').first().contains(flowCloneNamePrefix)
138143

139144
// Delete the cloned flow
@@ -145,7 +150,7 @@ describe('Flows', () => {
145150
cy.getByTestID('notification-success').should('be.visible')
146151
cy.getByTestID('notification-success--dismiss').click()
147152

148-
cy.get('.cf-resource-card').should('have.length', 1)
153+
cy.get('.cf-resource-card').should('have.length', 2)
149154
cy.getByTestID('resource-editable-name').contains(`${flowName}`)
150155

151156
// Clone a flow again
@@ -177,8 +182,8 @@ describe('Flows', () => {
177182

178183
cy.getByTestID('notification-success').should('be.visible')
179184

180-
cy.get('.cf-resource-card').should('have.length', 1)
181-
cy.get('.cf-resource-editable-name').should('have.length', 1)
185+
cy.get('.cf-resource-card').should('have.length', 2)
186+
cy.get('.cf-resource-editable-name').should('have.length', 2)
182187
cy.get('.cf-resource-editable-name').contains(`${flowName}`)
183188
})
184189

@@ -260,9 +265,13 @@ describe('Flows with newQueryBuilder flag on', () => {
260265
}).then(() => {
261266
cy.visit(`${orgs}/${id}`)
262267
})
268+
cy.createNotebook(id).then(() => {
269+
cy.reload()
270+
})
263271
})
264272
)
265273
cy.getByTestID('version-info')
274+
266275
cy.getByTestID('nav-item-flows').should('be.visible')
267276
cy.getByTestID('nav-item-flows').click()
268277
})
@@ -354,7 +363,7 @@ describe('Flows with newQueryBuilder flag on', () => {
354363

355364
cy.clickNavBarItem('nav-item-flows')
356365

357-
cy.get('.cf-resource-card').should('have.length', 1)
366+
cy.get('.cf-resource-card').should('have.length', 2)
358367

359368
cy.getByTestID('resource-editable-name').contains(`${flowName}`)
360369

@@ -383,7 +392,7 @@ describe('Flows with newQueryBuilder flag on', () => {
383392

384393
cy.clickNavBarItem('nav-item-flows')
385394

386-
cy.get('.cf-resource-card').should('have.length', 2)
395+
cy.get('.cf-resource-card').should('have.length', 3)
387396
cy.get('.cf-resource-editable-name').first().contains(flowCloneNamePrefix)
388397

389398
// Delete the cloned flow
@@ -395,7 +404,7 @@ describe('Flows with newQueryBuilder flag on', () => {
395404
cy.getByTestID('notification-success').should('be.visible')
396405
cy.getByTestID('notification-success--dismiss').click()
397406

398-
cy.get('.cf-resource-card').should('have.length', 1)
407+
cy.get('.cf-resource-card').should('have.length', 2)
399408
cy.getByTestID('resource-editable-name').contains(`${flowName}`)
400409

401410
// Clone a flow again
@@ -427,8 +436,8 @@ describe('Flows with newQueryBuilder flag on', () => {
427436

428437
cy.getByTestID('notification-success').should('be.visible')
429438

430-
cy.get('.cf-resource-card').should('have.length', 1)
431-
cy.get('.cf-resource-editable-name').should('have.length', 1)
439+
cy.get('.cf-resource-card').should('have.length', 2)
440+
cy.get('.cf-resource-editable-name').should('have.length', 2)
432441
cy.get('.cf-resource-editable-name').contains(`${flowName}`)
433442
})
434443
})

cypress/e2e/shared/editor.test.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,15 @@ describe('Editor+LSP communication', () => {
5050
cy.get('@org').then(({id}: Organization) =>
5151
cy.fixture('routes').then(({orgs}) => {
5252
cy.visit(`${orgs}/${id}`)
53+
54+
cy.createNotebook(id).then(() => {
55+
cy.reload()
56+
})
5357
})
5458
)
5559
// Double check that the new schemaComposition flag does not interfere.
5660
cy.getByTestID('version-info')
61+
5762
cy.getByTestID('nav-item-flows').should('be.visible')
5863
cy.getByTestID('nav-item-flows').click()
5964

cypress/e2e/shared/flows.test.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@ describe('Flows', () => {
77
cy.get('@org').then(({id}: Organization) =>
88
cy.fixture('routes').then(({orgs}) => {
99
cy.visit(`${orgs}/${id}`)
10+
cy.createNotebook(id).then(() => {
11+
cy.reload()
12+
})
1013
})
1114
)
1215
// Double check that the new schemaComposition flag does not interfere.
@@ -246,7 +249,7 @@ describe('Flows', () => {
246249
})
247250
)
248251

249-
cy.get('.cf-resource-card').should('have.length', 1)
252+
cy.get('.cf-resource-card').should('have.length', 2)
250253

251254
cy.getByTestID('resource-editable-name').contains(`${flowName}`)
252255
})
@@ -332,7 +335,7 @@ describe('Flows', () => {
332335
cy.clickNavBarItem('nav-item-flows')
333336
cy.getByTestID('tree-nav').should('be.visible')
334337
cy.getByTestID('resource-editable-name').should('exist')
335-
cy.getByTestID('resource-editable-name').click()
338+
cy.getByTestID('resource-editable-name').first().click()
336339

337340
// validation and visualization should exist
338341
cy.getByTestID('simple-table').should('exist')
@@ -427,7 +430,7 @@ describe('Flows', () => {
427430
cy.clickNavBarItem('nav-item-flows')
428431
cy.getByTestID('tree-nav').should('be.visible')
429432
cy.getByTestID('resource-editable-name').should('exist')
430-
cy.getByTestID('resource-editable-name').click()
433+
cy.getByTestID('resource-editable-name').first().click()
431434

432435
// visualization should exist but not validation
433436
cy.getByTestID('simple-table').should('not.exist')

cypress/e2e/shared/flowsAlerts.test.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,11 @@ describe('flows alert panel', () => {
1818
cy.fixture('routes').then(({orgs}) => {
1919
cy.visit(`${orgs}/${id}`)
2020
cy.getByTestID('version-info')
21+
22+
cy.createNotebook(id).then(() => {
23+
cy.reload()
24+
})
25+
2126
return cy
2227
.setFeatureFlags({
2328
notebooksExp: true,

cypress/e2e/shared/flowsSidebarExportToClipboard.test.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,10 @@ describe('Flows Copy To Clipboard', () => {
110110
cy.get('@org').then(({id}: Organization) => {
111111
cy.fixture('routes').then(({orgs}) => {
112112
cy.visit(`${orgs}/${id}`)
113+
114+
cy.createNotebook(id).then(() => {
115+
cy.reload()
116+
})
113117
})
114118
})
115119
cy.getByTestID('tree-nav')

cypress/e2e/shared/legends.test.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -555,6 +555,9 @@ describe('Legends', () => {
555555
cy.get('@org').then(({id}: Organization) => {
556556
cy.createMapVariable(id)
557557
cy.fixture('routes').then(({orgs, notebooks}) => {
558+
cy.createNotebook(id).then(() => {
559+
cy.reload()
560+
})
558561
cy.visit(`${orgs}/${id}${notebooks}`)
559562
cy.getByTestID('tree-nav').should('be.visible')
560563
})

cypress/e2e/shared/secrets.test.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,13 +120,17 @@ describe('Secrets', () => {
120120
})
121121
})
122122
})
123+
123124
describe('usage in notebooks', () => {
124125
beforeEach(() => {
125126
cy.flush()
126127
cy.signin()
127128
cy.get('@org').then(({id}: Organization) =>
128129
cy.fixture('routes').then(({orgs}) => {
129130
cy.visit(`${orgs}/${id}`)
131+
cy.createNotebook(id).then(() => {
132+
cy.reload()
133+
})
130134
})
131135
)
132136
cy.getByTestID('version-info')

cypress/support/commands.ts

Lines changed: 148 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -594,6 +594,151 @@ export const createToken = (
594594
})
595595
}
596596

597+
export const createNotebook = (
598+
orgID,
599+
name = 'Default Notebook to pass notebook deprecation checks'
600+
): Cypress.Chainable<Cypress.Response<any>> => {
601+
return cy.request('POST', '/api/v2private/notebooks', {
602+
orgID,
603+
name,
604+
spec: {
605+
name,
606+
readOnly: false,
607+
range: {
608+
seconds: 3600,
609+
lower: 'now() - 1h',
610+
upper: null,
611+
label: 'Past 1h',
612+
duration: '1h',
613+
type: 'selectable-duration',
614+
windowPeriod: 10000,
615+
},
616+
refresh: {
617+
status: 'paused',
618+
interval: 0,
619+
duration: null,
620+
inactivityTimeout: 0,
621+
infiniteDuration: false,
622+
label: '',
623+
},
624+
pipes: [
625+
{
626+
type: 'queryBuilder',
627+
buckets: [],
628+
tags: [
629+
{key: '_measurement', values: [], aggregateFunctionType: 'filter'},
630+
],
631+
id: 'local_cxjzb8S8Nt6nStkd-MqjF',
632+
title: 'Build a Query',
633+
visible: true,
634+
},
635+
{
636+
type: 'table',
637+
id: 'local_Y7j37pbyZibPmj_ToemAo',
638+
title: 'Validate the Data',
639+
visible: true,
640+
},
641+
{
642+
type: 'visualization',
643+
properties: {
644+
type: 'xy',
645+
shape: 'chronograf-v2',
646+
geom: 'line',
647+
xColumn: null,
648+
yColumn: null,
649+
position: 'overlaid',
650+
hoverDimension: 'auto',
651+
queries: [
652+
{
653+
name: '',
654+
text: '',
655+
editMode: 'builder',
656+
builderConfig: {
657+
buckets: [],
658+
tags: [
659+
{
660+
key: '_measurement',
661+
values: [],
662+
aggregateFunctionType: 'filter',
663+
},
664+
],
665+
functions: [{name: 'mean'}],
666+
aggregateWindow: {period: 'auto', fillValues: false},
667+
},
668+
},
669+
],
670+
colors: [
671+
{
672+
type: 'scale',
673+
hex: '#31C0F6',
674+
id: 'VNWzqjV7KpDG7iaMLQ4oS',
675+
name: 'Nineteen Eighty Four',
676+
value: 0,
677+
},
678+
{
679+
type: 'scale',
680+
hex: '#A500A5',
681+
id: 'd0V9jZYP1q6-Yn_f8-wRv',
682+
name: 'Nineteen Eighty Four',
683+
value: 0,
684+
},
685+
{
686+
type: 'scale',
687+
hex: '#FF7E27',
688+
id: 'wC8pf-gi7KKgzyWKZ76Y9',
689+
name: 'Nineteen Eighty Four',
690+
value: 0,
691+
},
692+
],
693+
legendColorizeRows: true,
694+
legendOpacity: 1,
695+
legendOrientationThreshold: 100000000,
696+
staticLegend: {
697+
colorizeRows: true,
698+
heightRatio: 0,
699+
opacity: 1,
700+
orientationThreshold: 100000000,
701+
show: false,
702+
widthRatio: 1,
703+
},
704+
note: '',
705+
showNoteWhenEmpty: false,
706+
axes: {
707+
x: {
708+
bounds: ['', ''],
709+
label: '',
710+
prefix: '',
711+
suffix: '',
712+
base: '10',
713+
scale: 'linear',
714+
},
715+
y: {
716+
bounds: ['', ''],
717+
label: '',
718+
prefix: '',
719+
suffix: '',
720+
base: '10',
721+
scale: 'linear',
722+
},
723+
},
724+
generateXAxisTicks: [],
725+
generateYAxisTicks: [],
726+
xTotalTicks: null,
727+
xTickStart: null,
728+
xTickStep: null,
729+
yTotalTicks: null,
730+
yTickStart: null,
731+
yTickStep: null,
732+
},
733+
id: 'local_rFh--ymiiJwXTzeUjZkl9',
734+
title: 'Visualize the Result',
735+
visible: true,
736+
},
737+
],
738+
},
739+
})
740+
}
741+
597742
export const setupUser = (useIox: boolean = false): Cypress.Chainable<any> => {
598743
useIox = Cypress.env('useIox') || useIox
599744
const defaultUser = Cypress.env('defaultUser')
@@ -1183,6 +1328,9 @@ Cypress.Commands.add('createTask', createTask)
11831328
// tokens
11841329
Cypress.Commands.add('createToken', createToken)
11851330

1331+
// notebooks
1332+
Cypress.Commands.add('createNotebook', createNotebook)
1333+
11861334
// variables
11871335
Cypress.Commands.add('createQueryVariable', createQueryVariable)
11881336
Cypress.Commands.add('createCSVVariable', createCSVVariable)

0 commit comments

Comments
 (0)