From 0a5eff2255279eaf2d567ffb883e8b8529691461 Mon Sep 17 00:00:00 2001 From: Palash gupta Date: Wed, 15 Jun 2022 01:34:56 +0530 Subject: [PATCH 1/3] feat: alerts breadcrumb is added --- frontend/src/container/TopNav/Breadcrumbs/index.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/frontend/src/container/TopNav/Breadcrumbs/index.tsx b/frontend/src/container/TopNav/Breadcrumbs/index.tsx index 25ff730711..33d42ac5b0 100644 --- a/frontend/src/container/TopNav/Breadcrumbs/index.tsx +++ b/frontend/src/container/TopNav/Breadcrumbs/index.tsx @@ -16,6 +16,7 @@ const breadcrumbNameMap = { [ROUTES.ORG_SETTINGS]: 'Organization Settings', [ROUTES.MY_SETTINGS]: 'My Settings', [ROUTES.ERROR_DETAIL]: 'Errors', + [ROUTES.LIST_ALL_ALERT]: 'Alerts', }; function ShowBreadcrumbs(props: RouteComponentProps): JSX.Element { From b8c3fd1cbf61c76da5a041222121ddb0c94278fd Mon Sep 17 00:00:00 2001 From: Palash Date: Thu, 23 Jun 2022 15:26:44 +0530 Subject: [PATCH 2/3] test: test pipeline for unit test is configured (#1277) * test: test pipeline is configured Co-authored-by: Palash gupta --- .github/workflows/build.yaml | 2 + frontend/jest.setup.ts | 1 + frontend/package.json | 1 + .../__snapshots__/NotFound.test.tsx.snap | 106 +++++++++++++++++- .../TraceFlameGraph.test.tsx.snap | 24 +++- frontend/tsconfig.json | 3 +- frontend/yarn.lock | 7 ++ 7 files changed, 134 insertions(+), 10 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index f9096698cc..8f346bf882 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -17,6 +17,8 @@ jobs: run: cd frontend && yarn install - name: Run ESLint run: cd frontend && npm run lint + - name: Run Jest + run: cd frontend && npm run jest - name: TSC run: yarn tsc working-directory: ./frontend diff --git a/frontend/jest.setup.ts b/frontend/jest.setup.ts index 6557f780cf..b3b8061422 100644 --- a/frontend/jest.setup.ts +++ b/frontend/jest.setup.ts @@ -2,3 +2,4 @@ * Adds custom matchers from the react testing library to all tests */ import '@testing-library/jest-dom'; +import 'jest-styled-components'; diff --git a/frontend/package.json b/frontend/package.json index ebaffb5fae..f93bc9684c 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -159,6 +159,7 @@ "husky": "^7.0.4", "is-ci": "^3.0.1", "jest-playwright-preset": "^1.7.0", + "jest-styled-components": "^7.0.8", "less-plugin-npm-import": "^2.1.0", "lint-staged": "^12.3.7", "portfinder-sync": "^0.0.2", diff --git a/frontend/src/components/NotFound/__snapshots__/NotFound.test.tsx.snap b/frontend/src/components/NotFound/__snapshots__/NotFound.test.tsx.snap index 0e9ce92e30..9da91a31bd 100644 --- a/frontend/src/components/NotFound/__snapshots__/NotFound.test.tsx.snap +++ b/frontend/src/components/NotFound/__snapshots__/NotFound.test.tsx.snap @@ -2,8 +2,102 @@ exports[`Not Found page test should render Not Found page without errors 1`] = ` -

Ah, seems like we reached a dead end!

Page Not Found

diff --git a/frontend/src/container/TraceFlameGraph/__tests__/__snapshots__/TraceFlameGraph.test.tsx.snap b/frontend/src/container/TraceFlameGraph/__tests__/__snapshots__/TraceFlameGraph.test.tsx.snap index 39a3638956..c8c24ebfd4 100644 --- a/frontend/src/container/TraceFlameGraph/__tests__/__snapshots__/TraceFlameGraph.test.tsx.snap +++ b/frontend/src/container/TraceFlameGraph/__tests__/__snapshots__/TraceFlameGraph.test.tsx.snap @@ -2,12 +2,30 @@ exports[`loads and displays greeting 1`] = ` -
diff --git a/frontend/tsconfig.json b/frontend/tsconfig.json index b3aa27fe50..a10bce6e81 100644 --- a/frontend/tsconfig.json +++ b/frontend/tsconfig.json @@ -35,6 +35,7 @@ "playwright.config.ts", "./commitlint.config.js", "./webpack.config.js", - "./webpack.config.prod.js" + "./webpack.config.prod.js", + "./jest.setup.ts" ] } diff --git a/frontend/yarn.lock b/frontend/yarn.lock index 2227658f6b..3a254370a1 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -8128,6 +8128,13 @@ jest-snapshot@^27.5.1: pretty-format "^27.5.1" semver "^7.3.2" +jest-styled-components@^7.0.8: + version "7.0.8" + resolved "https://registry.yarnpkg.com/jest-styled-components/-/jest-styled-components-7.0.8.tgz#9ea3b43f002de060b4638fde3b422d14b3e3ec9f" + integrity sha512-0KE54d0yIzKcvtOv8eikyjG3rFRtKYUyQovaoha3nondtZzXYGB3bhsvYgEegU08Iry0ndWx2+g9f5ZzD4I+0Q== + dependencies: + css "^3.0.0" + jest-util@^26.6.2: version "26.6.2" resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-26.6.2.tgz#907535dbe4d5a6cb4c47ac9b926f6af29576cbc1" From afbcde5edc9f8cac44122593ae1963c3f1c5c3e2 Mon Sep 17 00:00:00 2001 From: Ankit Nayan Date: Thu, 23 Jun 2022 15:29:15 +0530 Subject: [PATCH 3/3] fix: added 404 for error in getRule api (#1309) * fix: added multiple error checks in getRule api --- .../app/clickhouseReader/reader.go | 36 +++++++++++++++---- 1 file changed, 30 insertions(+), 6 deletions(-) diff --git a/pkg/query-service/app/clickhouseReader/reader.go b/pkg/query-service/app/clickhouseReader/reader.go index 1258060c41..f405c69f6d 100644 --- a/pkg/query-service/app/clickhouseReader/reader.go +++ b/pkg/query-service/app/clickhouseReader/reader.go @@ -592,21 +592,45 @@ func (r *ClickHouseReader) GetRulesFromDB() (*[]model.RuleResponseItem, *model.A func (r *ClickHouseReader) GetRule(id string) (*model.RuleResponseItem, *model.ApiError) { - idInt, _ := strconv.Atoi(id) + idInt, err := strconv.Atoi(id) + if err != nil { + zap.S().Debug("Error in parsing param: ", err) + return nil, &model.ApiError{Typ: model.ErrorBadData, Err: err} + } rule := &model.RuleResponseItem{} - query := fmt.Sprintf("SELECT id, updated_at, data FROM rules WHERE id=%d", idInt) - - err := r.localDB.Get(rule, query) - - zap.S().Info(query) + query := "SELECT id, updated_at, data FROM rules WHERE id=?" + rows, err := r.localDB.Query(query, idInt) if err != nil { zap.S().Debug("Error in processing sql query: ", err) return nil, &model.ApiError{Typ: model.ErrorInternal, Err: err} } + count := 0 + // iterate over each row + for rows.Next() { + err = rows.Scan(&rule.Id, &rule.UpdatedAt, &rule.Data) + if err != nil { + zap.S().Debug(err) + return nil, &model.ApiError{Typ: model.ErrorInternal, Err: err} + } + count += 1 + + } + + if count == 0 { + err = fmt.Errorf("no rule with id %d found", idInt) + zap.S().Debug(err) + return nil, &model.ApiError{Typ: model.ErrorNotFound, Err: err} + } + if count > 1 { + err = fmt.Errorf("multiple rules with id %d found", idInt) + zap.S().Debug(err) + return nil, &model.ApiError{Typ: model.ErrorConflict, Err: err} + } + return rule, nil }