From 699510db137f7784e1e1369268726fd75c6bcdc6 Mon Sep 17 00:00:00 2001 From: Vitali Pinchuk <146737590+vitPinchuk@users.noreply.github.com> Date: Mon, 23 Dec 2024 03:03:07 +0300 Subject: [PATCH] Update e2e test (#98) * e2e updated * min version dep added * support versions in test * remove unused method * upd helpers * Updates --------- Co-authored-by: Mikhail Volkov --- .github/workflows/e2e.yml | 36 +- CHANGELOG.md | 1 + docker-compose.yml | 14 + package-lock.json | 220 +++--------- package.json | 5 +- provisioning/dashboards/panels.json | 340 +++++++++++------- src/components/QueryEditor/QueryEditor.tsx | 7 +- .../ValueEditor/ValueEditor.test.tsx | 8 +- .../components/ValueInput/ValueInput.test.tsx | 54 +-- .../components/ValueInput/ValueInput.tsx | 10 +- .../ValuesEditor/ValuesEditor.test.tsx | 2 +- src/constants/tests.ts | 11 +- src/plugin.json | 2 +- test/panel.spec.ts | 219 +++++++++-- test/utils/configEditor.ts | 33 ++ test/utils/index.ts | 4 + test/utils/panel.ts | 77 ++++ test/utils/queryEditor.ts | 271 ++++++++++++++ test/utils/selectors.ts | 51 +++ tsconfig.json | 6 +- 20 files changed, 1012 insertions(+), 359 deletions(-) create mode 100644 test/utils/configEditor.ts create mode 100644 test/utils/index.ts create mode 100644 test/utils/panel.ts create mode 100644 test/utils/queryEditor.ts create mode 100644 test/utils/selectors.ts diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index c52b602..ad5164a 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -9,7 +9,7 @@ on: - main jobs: - tests: + dev: runs-on: ubuntu-latest steps: @@ -42,3 +42,37 @@ jobs: name: playwright-report path: playwright-report/ retention-days: 30 + + dependency: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Setup Node.js environment + uses: actions/setup-node@v4 + with: + node-version: '20' + cache: 'npm' + + - name: Install dependencies + run: npm install + + - name: Build + run: npm run build + + - name: Start Grafana + run: docker compose --profile dependency up -d + + - name: Run e2e tests + run: npm run test:e2e:docker + + - name: Stop Grafana + run: docker compose down + + - uses: actions/upload-artifact@v4 + if: ${{ !cancelled() }} + with: + name: playwright-report-dependency + path: playwright-report/ + retention-days: 30 diff --git a/CHANGELOG.md b/CHANGELOG.md index 69d3124..d15a619 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ ### Features / Enhancements - Added editor for boolean values (#97) +- Updated e2e test (#98) ## 4.4.0 (2024-11-18) diff --git a/docker-compose.yml b/docker-compose.yml index 4dee773..75dff6e 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -29,6 +29,20 @@ services: profiles: - main + grafana-dep: + image: grafana/grafana:10.3.0 + ports: + - 3000:3000/tcp + environment: + - GF_DEFAULT_APP_MODE=development + - GF_USERS_DEFAULT_THEME=light + - GF_INSTALL_PLUGINS=volkovlabs-image-panel,marcusolsson-dynamictext-panel,grafana-llm-app + volumes: + - ./dist:/var/lib/grafana/plugins/marcusolsson-static-datasource + - ./provisioning:/etc/grafana/provisioning + profiles: + - dependency + test: build: context: . diff --git a/package-lock.json b/package-lock.json index d65222c..b8db1a0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "business-input", - "version": "4.4.0", + "version": "4.5.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "business-input", - "version": "4.4.0", + "version": "4.5.0", "license": "Apache-2.0", "dependencies": { "@emotion/css": "^11.13.0", @@ -19,13 +19,14 @@ "@volkovlabs/components": "^3.5.0", "react": "^18.3.1", "react-dom": "^18.3.1", + "semver": "^7.6.3", "tslib": "^2.8.1", "uuid": "^11.0.3" }, "devDependencies": { "@babel/core": "^7.26.0", "@grafana/eslint-config": "^8.0.0", - "@grafana/plugin-e2e": "^1.12.1", + "@grafana/plugin-e2e": "^1.13.1", "@grafana/tsconfig": "^2.0.0", "@playwright/test": "^1.48.2", "@swc/core": "^1.9.2", @@ -137,6 +138,15 @@ "url": "https://opencollective.com/babel" } }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/@babel/generator": { "version": "7.26.2", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.2.tgz", @@ -168,6 +178,15 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/@babel/helper-module-imports": { "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", @@ -1001,35 +1020,17 @@ "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==" }, "node_modules/@grafana/e2e-selectors": { - "version": "11.4.0-208251", - "resolved": "https://registry.npmjs.org/@grafana/e2e-selectors/-/e2e-selectors-11.4.0-208251.tgz", - "integrity": "sha512-J6EzDaFkC8mRfQB7VgrtRba9a5FvdZslsHzZdSE6Ot05rCwzCOl50ENcBoDhfkrUCKMEEimVg25c3WskW1YbTA==", + "version": "11.5.0-214152", + "resolved": "https://registry.npmjs.org/@grafana/e2e-selectors/-/e2e-selectors-11.5.0-214152.tgz", + "integrity": "sha512-zxWMgtPjgZmovSwa/wrhiyiymZsJDAbQamC5f56C24spg4ccjuyFLygSUl08l3zMX19tXrkrvCYQQD004eRZIQ==", "dev": true, "dependencies": { "@grafana/tsconfig": "^2.0.0", "semver": "7.6.3", - "tslib": "2.7.0", + "tslib": "2.8.1", "typescript": "5.5.4" } }, - "node_modules/@grafana/e2e-selectors/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@grafana/e2e-selectors/node_modules/tslib": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", - "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", - "dev": true - }, "node_modules/@grafana/e2e-selectors/node_modules/typescript": { "version": "5.5.4", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz", @@ -1093,17 +1094,6 @@ "uuid": "^10.0.0" } }, - "node_modules/@grafana/llm/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@grafana/llm/node_modules/uuid": { "version": "10.0.0", "resolved": "https://registry.npmjs.org/uuid/-/uuid-10.0.0.tgz", @@ -1117,12 +1107,12 @@ } }, "node_modules/@grafana/plugin-e2e": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@grafana/plugin-e2e/-/plugin-e2e-1.12.1.tgz", - "integrity": "sha512-pxmtBn/zFGoyNwfHgwSYEqfH1vTp4r6GnMl0cl3tsQJXO8S58QCD0PFG5Op/OcHhsoglIQTWFVkGvUqu8c5q0A==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/@grafana/plugin-e2e/-/plugin-e2e-1.14.0.tgz", + "integrity": "sha512-r6ITeXNJvGrEWS8APNeLYDEUW7w1+Fip0DSFbjNKXSBqyd6FLNKJNvNbxwdXztfskV+sjzIpLPChxPQDUExFRQ==", "dev": true, "dependencies": { - "@grafana/e2e-selectors": "^11.4.0-207766", + "@grafana/e2e-selectors": "^11.5.0-213998", "semver": "^7.5.4", "uuid": "^11.0.2", "yaml": "^2.3.4" @@ -1134,18 +1124,6 @@ "@playwright/test": "^1.41.2" } }, - "node_modules/@grafana/plugin-e2e/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@grafana/runtime": { "version": "11.3.0", "resolved": "https://registry.npmjs.org/@grafana/runtime/-/runtime-11.3.0.tgz", @@ -3792,19 +3770,6 @@ } } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "dev": true, - "peer": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@typescript-eslint/utils": { "version": "8.14.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.14.0.tgz", @@ -4226,18 +4191,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@volkovlabs/eslint-config/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@volkovlabs/eslint-config/node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -4939,6 +4892,15 @@ "node": ">=8" } }, + "node_modules/babel-plugin-istanbul/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/babel-plugin-jest-hoist": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", @@ -5624,18 +5586,6 @@ } } }, - "node_modules/css-loader/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/css-tree": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", @@ -6949,18 +6899,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/eslint-plugin-deprecation/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/eslint-plugin-deprecation/node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -6996,19 +6934,6 @@ "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0" } }, - "node_modules/eslint-plugin-jsdoc/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "dev": true, - "peer": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/eslint-plugin-react": { "version": "7.37.2", "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.2.tgz", @@ -7105,6 +7030,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/eslint-plugin-react/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/eslint-plugin-simple-import-sort": { "version": "10.0.0", "resolved": "https://registry.npmjs.org/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-10.0.0.tgz", @@ -7726,18 +7660,6 @@ "url": "https://opencollective.com/webpack" } }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/form-data": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", @@ -8988,18 +8910,6 @@ "node": ">=10" } }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/istanbul-lib-report": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", @@ -9907,18 +9817,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-snapshot/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/jest-util": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", @@ -10361,18 +10259,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/make-dir/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/make-error": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", @@ -12953,12 +12839,14 @@ "integrity": "sha512-C+6PCOO55NLCfS8uQjUKV/6E5XMuUcfOVsix5m0QqCCCKi495NgeQVNfWtAaD71NKHsdmFCJoXUGfir3qWdr9A==" }, "node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "bin": { "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, "node_modules/serialize-javascript": { diff --git a/package.json b/package.json index beed385..24b5d6d 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ "@volkovlabs/components": "^3.5.0", "react": "^18.3.1", "react-dom": "^18.3.1", + "semver": "^7.6.3", "tslib": "^2.8.1", "uuid": "^11.0.3" }, @@ -18,7 +19,7 @@ "devDependencies": { "@babel/core": "^7.26.0", "@grafana/eslint-config": "^8.0.0", - "@grafana/plugin-e2e": "^1.12.1", + "@grafana/plugin-e2e": "^1.13.1", "@grafana/tsconfig": "^2.0.0", "@playwright/test": "^1.48.2", "@swc/core": "^1.9.2", @@ -69,12 +70,14 @@ "lint:fix": "eslint --fix --ignore-path ./.eslintignore --ext .js,.jsx,.ts,.tsx .", "sign": "npx --yes @grafana/sign-plugin@latest", "start": "docker compose pull grafana && docker compose --profile dev up", + "start:dep": "docker compose pull grafana-dep && docker compose --profile dependency up", "start:main": "docker compose pull grafana-main && docker compose --profile main up", "stop": "docker compose down", "stop:e2e": "docker-compose -f test/docker-compose.yml down", "test": "jest --watch --onlyChanged", "test:ci": "jest --maxWorkers 4 --coverage", "test:e2e": "npx playwright test", + "test:e2e:dev": "npx playwright test --ui", "test:e2e:docker": "docker compose --profile e2e up --exit-code-from test", "upgrade": "npm upgrade --save" }, diff --git a/provisioning/dashboards/panels.json b/provisioning/dashboards/panels.json index 67938de..539b013 100644 --- a/provisioning/dashboards/panels.json +++ b/provisioning/dashboards/panels.json @@ -98,45 +98,44 @@ }, "fieldConfig": { "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - } - }, - "mappings": [] + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } }, "overrides": [] }, "gridPos": { - "h": 10, + "h": 8, "w": 12, "x": 12, "y": 0 }, - "id": 2, + "id": 8, "options": { - "displayLabels": ["name"], - "legend": { - "displayMode": "table", - "placement": "right", - "showLegend": true, - "values": ["percent"] - }, - "pieType": "pie", - "reduceOptions": { - "calcs": ["lastNotNull"], - "fields": "", - "values": true + "afterRender": "", + "content": "```json\n{{{json @root}}}\n```", + "contentPartials": [], + "defaultContent": "The query didn't return any results.", + "editor": { + "format": "auto", + "language": "markdown" }, - "tooltip": { - "mode": "single", - "sort": "none" - } + "editors": [], + "externalStyles": [], + "helpers": "", + "renderMode": "allRows", + "styles": "", + "wrap": true }, "targets": [ { @@ -148,25 +147,39 @@ "fields": [ { "config": {}, - "name": "Name", + "name": "time", + "type": "time", + "values": [1667276845648, 1667276845648] + }, + { + "config": {}, + "name": "message", "type": "string", - "values": ["Graph", "Logs", "Node Graph", "Table", "Trace"] + "values": ["enable: 198", "enable: asb"] }, { "config": {}, - "name": "Amount", - "type": "number", - "values": [10, 7, 3, 4, 2] + "name": "level", + "type": "string", + "values": ["info", "info"] + }, + { + "config": {}, + "name": "enable", + "type": "boolean", + "values": [true, false] } ], - "meta": {}, - "name": "sales" + "meta": { + "preferredVisualisationType": "logs" + }, + "name": "Server Logs" }, "refId": "A" } ], - "title": "Getting Started", - "type": "piechart" + "title": "Data", + "type": "marcusolsson-dynamictext-panel" }, { "datasource": { @@ -234,88 +247,6 @@ "title": "Image", "type": "volkovlabs-image-panel" }, - { - "datasource": { - "type": "marcusolsson-static-datasource", - "uid": "P1D2C73DC01F2359B" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - } - }, - "mappings": [] - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 12, - "x": 12, - "y": 10 - }, - "id": 7, - "options": { - "displayLabels": ["name"], - "legend": { - "displayMode": "table", - "placement": "right", - "showLegend": true, - "values": ["percent"] - }, - "pieType": "pie", - "reduceOptions": { - "calcs": ["lastNotNull"], - "fields": "", - "values": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "marcusolsson-static-datasource", - "uid": "P1D2C73DC01F2359B" - }, - "frame": { - "fields": [ - { - "config": {}, - "name": "Name", - "type": "string", - "values": ["Graph", "Logs", "Node Graph", "Table", "Trace"] - }, - { - "config": {}, - "name": "Amount", - "type": "number", - "values": [10, 7, 3, 4, 2] - } - ], - "meta": { - "custom": { - "customCode": "const values = [['Graph', 'Logs', 'Node Graph', 'Table', 'Trace'], [10, 7, 3, 4, 2]];\n\nconst result = {\n ...frame,\n fields: frame.fields.map((field, i) => ({\n ...field,\n values: values[i]\n }))\n}\n\nreturn Promise.resolve(result);", - "valuesEditor": "custom" - } - }, - "name": "sales" - }, - "refId": "A" - } - ], - "title": "Custom Code", - "type": "piechart" - }, { "datasource": { "type": "marcusolsson-static-datasource", @@ -342,10 +273,10 @@ "gridPos": { "h": 23, "w": 12, - "x": 0, - "y": 19 + "x": 12, + "y": 8 }, - "id": 8, + "id": 9, "options": { "afterRender": "", "content": "```json\n{{{json @root}}}\n```", @@ -474,8 +405,167 @@ "refId": "A" } ], - "title": "Logs", + "title": "Logs (Enable)", "type": "marcusolsson-dynamictext-panel" + }, + { + "datasource": { + "type": "marcusolsson-static-datasource", + "uid": "P1D2C73DC01F2359B" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + } + }, + "mappings": [] + }, + "overrides": [] + }, + "gridPos": { + "h": 10, + "w": 12, + "x": 0, + "y": 19 + }, + "id": 2, + "options": { + "displayLabels": ["name"], + "legend": { + "displayMode": "table", + "placement": "right", + "showLegend": true, + "values": ["percent"] + }, + "pieType": "pie", + "reduceOptions": { + "calcs": ["lastNotNull"], + "fields": "", + "values": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "marcusolsson-static-datasource", + "uid": "P1D2C73DC01F2359B" + }, + "frame": { + "fields": [ + { + "config": {}, + "name": "Name", + "type": "string", + "values": ["Graph", "Logs", "Node Graph", "Table", "Trace"] + }, + { + "config": {}, + "name": "Amount", + "type": "number", + "values": [10, 7, 3, 4, 2] + } + ], + "meta": {}, + "name": "sales" + }, + "refId": "A" + } + ], + "title": "Getting Started", + "type": "piechart" + }, + { + "datasource": { + "type": "marcusolsson-static-datasource", + "uid": "P1D2C73DC01F2359B" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + } + }, + "mappings": [] + }, + "overrides": [] + }, + "gridPos": { + "h": 10, + "w": 12, + "x": 12, + "y": 31 + }, + "id": 7, + "options": { + "displayLabels": ["name"], + "legend": { + "displayMode": "table", + "placement": "right", + "showLegend": true, + "values": ["percent"] + }, + "pieType": "pie", + "reduceOptions": { + "calcs": ["lastNotNull"], + "fields": "", + "values": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "marcusolsson-static-datasource", + "uid": "P1D2C73DC01F2359B" + }, + "frame": { + "fields": [ + { + "config": {}, + "name": "Name", + "type": "string", + "values": ["Graph", "Logs", "Node Graph", "Table", "Trace"] + }, + { + "config": {}, + "name": "Amount", + "type": "number", + "values": [10, 7, 3, 4, 2] + } + ], + "meta": { + "custom": { + "customCode": "const values = [['Graph', 'Logs', 'Node Graph', 'Table', 'Trace'], [10, 7, 3, 4, 2]];\n\nconst result = {\n ...frame,\n fields: frame.fields.map((field, i) => ({\n ...field,\n values: values[i]\n }))\n}\n\nreturn Promise.resolve(result);", + "valuesEditor": "custom" + } + }, + "name": "sales" + }, + "refId": "A" + } + ], + "title": "Custom Code", + "type": "piechart" } ], "preload": false, @@ -531,6 +621,6 @@ "timezone": "", "title": "Panels", "uid": "O4tc_E6Gz", - "version": 8, + "version": 1, "weekStart": "" } diff --git a/src/components/QueryEditor/QueryEditor.tsx b/src/components/QueryEditor/QueryEditor.tsx index 39e2731..2943168 100644 --- a/src/components/QueryEditor/QueryEditor.tsx +++ b/src/components/QueryEditor/QueryEditor.tsx @@ -166,7 +166,7 @@ export const QueryEditor: React.FC = ({ datasource, onChange, onRunQuery, }, []); return ( - <> +
= ({ datasource, onChange, onRunQuery, )} {datasource.codeEditorEnabled && ( - +