From 57afd7ec67997bc197a5d7ab17da82c1a7cfed5b Mon Sep 17 00:00:00 2001 From: eduardo aleixo Date: Tue, 5 Oct 2021 12:29:30 -0300 Subject: [PATCH 01/14] add few small tests --- cypress/integration/api.ts | 28 +++++++++++++++++++ cypress/integration/e2e.ts | 19 +++++++++++++ pkg/server/render.go | 7 ----- .../__snapshots__/RefreshButton.spec.js.snap | 1 + .../FlameGraph/FlameGraphComponent/index.jsx | 16 ++++++++--- .../javascript/components/RefreshButton.jsx | 1 + 6 files changed, 61 insertions(+), 11 deletions(-) create mode 100644 cypress/integration/api.ts create mode 100644 cypress/integration/e2e.ts diff --git a/cypress/integration/api.ts b/cypress/integration/api.ts new file mode 100644 index 0000000000..94567a9417 --- /dev/null +++ b/cypress/integration/api.ts @@ -0,0 +1,28 @@ +// few tests just to quickly validate the endpoints are working +describe('API tests', () => { + it('tests /render endpoint', () => { + cy.request( + 'GET', + '/render?from=now-5m&until=now&query=pyroscope.server.alloc_objects%7B%7D&format=json' + ) + .its('headers') + .its('content-type') + .should('include', 'application/json'); + }); + + it('tests /labels endpoint', () => { + // TODO + // this is not returning json + cy.request('GET', '/labels?query=pyroscope.server.alloc_objects'); + // .its('headers') + // .its('content-type') + // .should('include', 'application/json'); + }); + + it('tests /render-diff endpoint', () => { + cy.request( + 'GET', + '/render-diff?from=now-5m&until=now&query=pyroscope.server.alloc_objects{}&max-nodes=1024&leftFrom=now-1h&leftUntil=now-30m&rightFrom=now-30m&rightUntil=now&format=json' + ); + }); +}); diff --git a/cypress/integration/e2e.ts b/cypress/integration/e2e.ts new file mode 100644 index 0000000000..b8dc8c66b3 --- /dev/null +++ b/cypress/integration/e2e.ts @@ -0,0 +1,19 @@ +// Following tests should have NO mocking involved. +// The objective involve validating server/webapp interaction is working correctly +// Therefore we can't really validate certain states +// +// TODO +// somehow seed the database? +describe('E2E Tests', () => { + it('tests single view', () => { + cy.visit('/'); + }); + + it('tests /comparison view', () => { + cy.visit('/comparison'); + }); + + it('tests /comparison-diff view', () => { + cy.visit('/comparison-diff'); + }); +}); diff --git a/pkg/server/render.go b/pkg/server/render.go index 5dba43ab15..e1013653dd 100644 --- a/pkg/server/render.go +++ b/pkg/server/render.go @@ -120,7 +120,6 @@ func (ctrl *Controller) renderDiffHandler(w http.ResponseWriter, r *http.Request leftOut.Tree, rghtOut.Tree = tree.CombineTree(leftOut.Tree, rghtOut.Tree) fs := tree.CombineToFlamebearerStruct(leftOut.Tree, rghtOut.Tree, p.maxNodes) - // TODO fs.SpyName = out.SpyName fs.SampleRate = out.SampleRate fs.Units = out.Units @@ -140,12 +139,6 @@ func (ctrl *Controller) renderDiffHandler(w http.ResponseWriter, r *http.Request ctrl.writeResponseJSON(w, res) } -type mergedFlamebearer struct { - *tree.Flamebearer - LeftTicks int `json:"leftTicks"` - RightTicks int `json:"rightTicks"` -} - func (ctrl *Controller) renderParametersFromRequest(r *http.Request, p *renderParams) error { v := r.URL.Query() p.gi = new(storage.GetInput) diff --git a/webapp/__tests__/__snapshots__/RefreshButton.spec.js.snap b/webapp/__tests__/__snapshots__/RefreshButton.spec.js.snap index beb6c20f13..e6189dd903 100644 --- a/webapp/__tests__/__snapshots__/RefreshButton.spec.js.snap +++ b/webapp/__tests__/__snapshots__/RefreshButton.spec.js.snap @@ -4,6 +4,7 @@ exports[`RefreshButton render correctly RefreshButton component 1`] = `