@grafana/plugin-e2e 0.0.0 → 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/README.md +1 -0
  2. package/dist/api.d.ts +41 -0
  3. package/dist/api.js +15 -0
  4. package/dist/e2e-selectors/index.d.ts +2 -0
  5. package/dist/e2e-selectors/index.js +20 -0
  6. package/dist/e2e-selectors/resolver.d.ts +3 -0
  7. package/dist/e2e-selectors/resolver.js +38 -0
  8. package/dist/e2e-selectors/resolver.test.d.ts +1 -0
  9. package/dist/e2e-selectors/resolver.test.js +39 -0
  10. package/dist/e2e-selectors/types.d.ts +691 -0
  11. package/dist/e2e-selectors/types.js +2 -0
  12. package/dist/e2e-selectors/versioned/apis.d.ts +29 -0
  13. package/dist/e2e-selectors/versioned/apis.js +35 -0
  14. package/dist/e2e-selectors/versioned/components.d.ts +419 -0
  15. package/dist/e2e-selectors/versioned/components.js +426 -0
  16. package/dist/e2e-selectors/versioned/constants.d.ts +1 -0
  17. package/dist/e2e-selectors/versioned/constants.js +4 -0
  18. package/dist/e2e-selectors/versioned/index.d.ts +2 -0
  19. package/dist/e2e-selectors/versioned/index.js +7 -0
  20. package/dist/e2e-selectors/versioned/pages.d.ts +334 -0
  21. package/dist/e2e-selectors/versioned/pages.js +345 -0
  22. package/dist/e2e-selectors/versioned/types.d.ts +8 -0
  23. package/dist/e2e-selectors/versioned/types.js +2 -0
  24. package/dist/fixtures/annotationEditPage.d.ts +7 -0
  25. package/dist/fixtures/annotationEditPage.js +62 -0
  26. package/dist/fixtures/commands/createDataSource.d.ts +8 -0
  27. package/dist/fixtures/commands/createDataSource.js +110 -0
  28. package/dist/fixtures/commands/createDataSourceConfigPage.d.ts +8 -0
  29. package/dist/fixtures/commands/createDataSourceConfigPage.js +82 -0
  30. package/dist/fixtures/commands/login.d.ts +6 -0
  31. package/dist/fixtures/commands/login.js +88 -0
  32. package/dist/fixtures/commands/readProvision.d.ts +7 -0
  33. package/dist/fixtures/commands/readProvision.js +67 -0
  34. package/dist/fixtures/explorePage.d.ts +7 -0
  35. package/dist/fixtures/explorePage.js +59 -0
  36. package/dist/fixtures/grafanaVersion.d.ts +6 -0
  37. package/dist/fixtures/grafanaVersion.js +63 -0
  38. package/dist/fixtures/index.d.ts +14 -0
  39. package/dist/fixtures/index.js +29 -0
  40. package/dist/fixtures/newDashboardPage.d.ts +7 -0
  41. package/dist/fixtures/newDashboardPage.js +59 -0
  42. package/dist/fixtures/panelEditPage.d.ts +7 -0
  43. package/dist/fixtures/panelEditPage.js +56 -0
  44. package/dist/fixtures/selectors.d.ts +7 -0
  45. package/dist/fixtures/selectors.js +62 -0
  46. package/dist/fixtures/types.d.ts +2 -0
  47. package/dist/fixtures/types.js +2 -0
  48. package/dist/fixtures/variableEditPage.d.ts +7 -0
  49. package/dist/fixtures/variableEditPage.js +62 -0
  50. package/dist/index.d.ts +3 -0
  51. package/dist/index.js +22 -0
  52. package/dist/matchers/index.d.ts +20 -0
  53. package/dist/matchers/index.js +13 -0
  54. package/dist/matchers/toBeOK.d.ts +7 -0
  55. package/dist/matchers/toBeOK.js +69 -0
  56. package/dist/matchers/toDisplayPreviews.d.ts +7 -0
  57. package/dist/matchers/toDisplayPreviews.js +70 -0
  58. package/dist/matchers/toHavePanelError.d.ts +9 -0
  59. package/dist/matchers/toHavePanelError.js +74 -0
  60. package/dist/matchers/utils.d.ts +1 -0
  61. package/dist/matchers/utils.js +5 -0
  62. package/dist/models/AnnotationEditPage.d.ts +8 -0
  63. package/dist/models/AnnotationEditPage.js +82 -0
  64. package/dist/models/AnnotationPage.d.ts +8 -0
  65. package/dist/models/AnnotationPage.js +123 -0
  66. package/dist/models/DashboardPage.d.ts +15 -0
  67. package/dist/models/DashboardPage.js +163 -0
  68. package/dist/models/DataSourceConfigPage.d.ts +10 -0
  69. package/dist/models/DataSourceConfigPage.js +135 -0
  70. package/dist/models/DataSourcePicker.d.ts +6 -0
  71. package/dist/models/DataSourcePicker.js +86 -0
  72. package/dist/models/ExplorePage.d.ts +12 -0
  73. package/dist/models/ExplorePage.js +130 -0
  74. package/dist/models/GrafanaPage.d.ts +11 -0
  75. package/dist/models/GrafanaPage.js +150 -0
  76. package/dist/models/PanelEditPage.d.ts +15 -0
  77. package/dist/models/PanelEditPage.js +165 -0
  78. package/dist/models/TimeRange.d.ts +6 -0
  79. package/dist/models/TimeRange.js +119 -0
  80. package/dist/models/VariableEditPage.d.ts +10 -0
  81. package/dist/models/VariableEditPage.js +109 -0
  82. package/dist/models/VariablePage.d.ts +8 -0
  83. package/dist/models/VariablePage.js +107 -0
  84. package/dist/models/index.d.ts +8 -0
  85. package/dist/models/index.js +19 -0
  86. package/dist/selectorEngine.d.ts +4 -0
  87. package/dist/selectorEngine.js +18 -0
  88. package/dist/types.d.ts +54 -0
  89. package/dist/types.js +2 -0
  90. package/package.json +4 -4
@@ -0,0 +1,7 @@
1
+ import { TestFixture } from '@playwright/test';
2
+ import { PluginFixture, PluginOptions } from '../api';
3
+ import { AnnotationEditPage } from '../models';
4
+ import { PlaywrightCombinedArgs } from './types';
5
+ type AnnotationEditPageFixture = TestFixture<AnnotationEditPage, PluginFixture & PluginOptions & PlaywrightCombinedArgs>;
6
+ declare const annotationEditPage: AnnotationEditPageFixture;
7
+ export default annotationEditPage;
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ var models_1 = require("../models");
40
+ var annotationEditPage = function (_a, use) {
41
+ var page = _a.page, selectors = _a.selectors, grafanaVersion = _a.grafanaVersion, request = _a.request;
42
+ return __awaiter(void 0, void 0, void 0, function () {
43
+ var annotationPage, annotationEditPage;
44
+ return __generator(this, function (_b) {
45
+ switch (_b.label) {
46
+ case 0:
47
+ annotationPage = new models_1.AnnotationPage({ page: page, selectors: selectors, grafanaVersion: grafanaVersion, request: request });
48
+ return [4, annotationPage.goto()];
49
+ case 1:
50
+ _b.sent();
51
+ return [4, annotationPage.clickAddNew()];
52
+ case 2:
53
+ annotationEditPage = _b.sent();
54
+ return [4, use(annotationEditPage)];
55
+ case 3:
56
+ _b.sent();
57
+ return [2];
58
+ }
59
+ });
60
+ });
61
+ };
62
+ exports.default = annotationEditPage;
@@ -0,0 +1,8 @@
1
+ import { APIRequestContext, TestFixture } from '@playwright/test';
2
+ import { PluginFixture, PluginOptions } from '../../api';
3
+ import { CreateDataSourceArgs, DataSource } from '../../types';
4
+ import { PlaywrightCombinedArgs } from '../types';
5
+ type CreateDataSourceViaAPIFixture = TestFixture<(args: CreateDataSourceArgs) => Promise<DataSource>, PluginFixture & PluginOptions & PlaywrightCombinedArgs>;
6
+ export declare const createDataSourceViaAPI: (request: APIRequestContext, datasource: DataSource) => Promise<DataSource>;
7
+ declare const createDataSource: CreateDataSourceViaAPIFixture;
8
+ export default createDataSource;
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ var __generator = (this && this.__generator) || function (thisArg, body) {
23
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
+ function verb(n) { return function (v) { return step([n, v]); }; }
26
+ function step(op) {
27
+ if (f) throw new TypeError("Generator is already executing.");
28
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
29
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
+ if (y = 0, t) op = [op[0] & 2, t.value];
31
+ switch (op[0]) {
32
+ case 0: case 1: t = op; break;
33
+ case 4: _.label++; return { value: op[1], done: false };
34
+ case 5: _.label++; y = op[1]; op = [0]; continue;
35
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
+ default:
37
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
+ if (t[2]) _.ops.pop();
42
+ _.trys.pop(); continue;
43
+ }
44
+ op = body.call(thisArg, _);
45
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
+ }
48
+ };
49
+ Object.defineProperty(exports, "__esModule", { value: true });
50
+ exports.createDataSourceViaAPI = void 0;
51
+ var uuid_1 = require("uuid");
52
+ var test_1 = require("@playwright/test");
53
+ var createDataSourceViaAPI = function (request, datasource) { return __awaiter(void 0, void 0, void 0, function () {
54
+ var type, name, dsName, existingDataSource, json, createDsReq, text, status;
55
+ return __generator(this, function (_a) {
56
+ switch (_a.label) {
57
+ case 0:
58
+ type = datasource.type, name = datasource.name;
59
+ dsName = name !== null && name !== void 0 ? name : "".concat(type, "-").concat((0, uuid_1.v4)());
60
+ return [4, request.get("/api/datasources/name/".concat(dsName))];
61
+ case 1:
62
+ existingDataSource = _a.sent();
63
+ return [4, existingDataSource.ok()];
64
+ case 2:
65
+ if (!_a.sent()) return [3, 5];
66
+ return [4, existingDataSource.json()];
67
+ case 3:
68
+ json = _a.sent();
69
+ return [4, request.delete("/api/datasources/uid/".concat(json.uid))];
70
+ case 4:
71
+ _a.sent();
72
+ _a.label = 5;
73
+ case 5: return [4, request.post('/api/datasources', {
74
+ data: __assign(__assign({}, datasource), { name: dsName, access: 'proxy', isDefault: false }),
75
+ })];
76
+ case 6:
77
+ createDsReq = _a.sent();
78
+ return [4, createDsReq.text()];
79
+ case 7:
80
+ text = _a.sent();
81
+ return [4, createDsReq.status()];
82
+ case 8:
83
+ status = _a.sent();
84
+ if (status === 200) {
85
+ return [2, createDsReq.json().then(function (r) { return r.datasource; })];
86
+ }
87
+ test_1.expect.soft(createDsReq.ok(), "Failed to create data source: ".concat(text)).toBeTruthy();
88
+ return [2, existingDataSource.json()];
89
+ }
90
+ });
91
+ }); };
92
+ exports.createDataSourceViaAPI = createDataSourceViaAPI;
93
+ var createDataSource = function (_a, use) {
94
+ var request = _a.request;
95
+ return __awaiter(void 0, void 0, void 0, function () {
96
+ return __generator(this, function (_b) {
97
+ switch (_b.label) {
98
+ case 0: return [4, use(function (args) { return __awaiter(void 0, void 0, void 0, function () {
99
+ return __generator(this, function (_a) {
100
+ return [2, (0, exports.createDataSourceViaAPI)(request, args.datasource)];
101
+ });
102
+ }); })];
103
+ case 1:
104
+ _b.sent();
105
+ return [2];
106
+ }
107
+ });
108
+ });
109
+ };
110
+ exports.default = createDataSource;
@@ -0,0 +1,8 @@
1
+ import { TestFixture } from '@playwright/test';
2
+ import { PluginFixture, PluginOptions } from '../../api';
3
+ import { CreateDataSourcePageArgs } from '../../types';
4
+ import { PlaywrightCombinedArgs } from '../types';
5
+ import { DataSourceConfigPage } from '../../models';
6
+ type CreateDataSourceConfigPageFixture = TestFixture<(args: CreateDataSourcePageArgs) => Promise<DataSourceConfigPage>, PluginFixture & PluginOptions & PlaywrightCombinedArgs>;
7
+ declare const createDataSourceConfigPage: CreateDataSourceConfigPageFixture;
8
+ export default createDataSourceConfigPage;
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ var models_1 = require("../../models");
40
+ var createDataSource_1 = require("./createDataSource");
41
+ var createDataSourceConfigPage = function (_a, use) {
42
+ var request = _a.request, page = _a.page, selectors = _a.selectors, grafanaVersion = _a.grafanaVersion;
43
+ return __awaiter(void 0, void 0, void 0, function () {
44
+ var datasourceConfigPage, deleteDataSource, _b;
45
+ return __generator(this, function (_c) {
46
+ switch (_c.label) {
47
+ case 0:
48
+ deleteDataSource = true;
49
+ return [4, use(function (args) { return __awaiter(void 0, void 0, void 0, function () {
50
+ var datasource;
51
+ var _a;
52
+ return __generator(this, function (_b) {
53
+ switch (_b.label) {
54
+ case 0:
55
+ deleteDataSource = (_a = args.deleteDataSourceAfterTest) !== null && _a !== void 0 ? _a : true;
56
+ return [4, (0, createDataSource_1.createDataSourceViaAPI)(request, args)];
57
+ case 1:
58
+ datasource = _b.sent();
59
+ datasourceConfigPage = new models_1.DataSourceConfigPage({ page: page, selectors: selectors, grafanaVersion: grafanaVersion, request: request }, datasource);
60
+ return [4, datasourceConfigPage.goto()];
61
+ case 2:
62
+ _b.sent();
63
+ return [2, datasourceConfigPage];
64
+ }
65
+ });
66
+ }); })];
67
+ case 1:
68
+ _c.sent();
69
+ _b = deleteDataSource;
70
+ if (!_b) return [3, 3];
71
+ return [4, (datasourceConfigPage === null || datasourceConfigPage === void 0 ? void 0 : datasourceConfigPage.deleteDataSource())];
72
+ case 2:
73
+ _b = (_c.sent());
74
+ _c.label = 3;
75
+ case 3:
76
+ _b;
77
+ return [2];
78
+ }
79
+ });
80
+ });
81
+ };
82
+ exports.default = createDataSourceConfigPage;
@@ -0,0 +1,6 @@
1
+ import { TestFixture } from '@playwright/test';
2
+ import { PluginFixture, PluginOptions } from '../../api';
3
+ import { PlaywrightCombinedArgs } from '../types';
4
+ type LoginFixture = TestFixture<() => Promise<void>, PluginFixture & PluginOptions & PlaywrightCombinedArgs>;
5
+ declare const login: LoginFixture;
6
+ export default login;
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ var __generator = (this && this.__generator) || function (thisArg, body) {
23
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
+ function verb(n) { return function (v) { return step([n, v]); }; }
26
+ function step(op) {
27
+ if (f) throw new TypeError("Generator is already executing.");
28
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
29
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
+ if (y = 0, t) op = [op[0] & 2, t.value];
31
+ switch (op[0]) {
32
+ case 0: case 1: t = op; break;
33
+ case 4: _.label++; return { value: op[1], done: false };
34
+ case 5: _.label++; y = op[1]; op = [0]; continue;
35
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
+ default:
37
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
+ if (t[2]) _.ops.pop();
42
+ _.trys.pop(); continue;
43
+ }
44
+ op = body.call(thisArg, _);
45
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
+ }
48
+ };
49
+ var __importDefault = (this && this.__importDefault) || function (mod) {
50
+ return (mod && mod.__esModule) ? mod : { "default": mod };
51
+ };
52
+ Object.defineProperty(exports, "__esModule", { value: true });
53
+ var path_1 = __importDefault(require("path"));
54
+ var test_1 = require("@playwright/test");
55
+ var authFile = 'playwright/.auth/user.json';
56
+ var login = function (_a, use) {
57
+ var request = _a.request, httpCredentials = _a.httpCredentials;
58
+ return __awaiter(void 0, void 0, void 0, function () {
59
+ return __generator(this, function (_b) {
60
+ switch (_b.label) {
61
+ case 0: return [4, use(function () { return __awaiter(void 0, void 0, void 0, function () {
62
+ var data, loginReq, text;
63
+ return __generator(this, function (_a) {
64
+ switch (_a.label) {
65
+ case 0:
66
+ data = httpCredentials ? __assign(__assign({}, httpCredentials), { user: 'admin' }) : { user: 'admin', password: 'admin' };
67
+ return [4, request.post('/login', { data: data })];
68
+ case 1:
69
+ loginReq = _a.sent();
70
+ return [4, loginReq.text()];
71
+ case 2:
72
+ text = _a.sent();
73
+ test_1.expect.soft(loginReq.ok(), "Could not log in to Grafana: ".concat(text)).toBeTruthy();
74
+ return [4, request.storageState({ path: path_1.default.join(process.cwd(), authFile) })];
75
+ case 3:
76
+ _a.sent();
77
+ return [2];
78
+ }
79
+ });
80
+ }); })];
81
+ case 1:
82
+ _b.sent();
83
+ return [2];
84
+ }
85
+ });
86
+ });
87
+ };
88
+ exports.default = login;
@@ -0,0 +1,7 @@
1
+ import { TestFixture } from '@playwright/test';
2
+ import { PluginFixture, PluginOptions } from '../../api';
3
+ import { ReadProvisionArgs } from '../../types';
4
+ import { PlaywrightCombinedArgs } from '../types';
5
+ type ReadProvisionFixture = TestFixture<(<T = any>(args: ReadProvisionArgs) => Promise<T>), PluginFixture & PluginOptions & PlaywrightCombinedArgs>;
6
+ declare const readProvision: ReadProvisionFixture;
7
+ export default readProvision;
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ var fs_1 = require("fs");
40
+ var path_1 = require("path");
41
+ var yaml_1 = require("yaml");
42
+ var readProvision = function (_a, use) { return __awaiter(void 0, void 0, void 0, function () {
43
+ return __generator(this, function (_b) {
44
+ switch (_b.label) {
45
+ case 0: return [4, use(function (_a) {
46
+ var filePath = _a.filePath;
47
+ return __awaiter(void 0, void 0, void 0, function () {
48
+ var resolvedPath, contents;
49
+ return __generator(this, function (_b) {
50
+ switch (_b.label) {
51
+ case 0:
52
+ resolvedPath = (0, path_1.resolve)(process.cwd(), 'provisioning', filePath);
53
+ return [4, fs_1.promises.readFile(resolvedPath, 'utf8')];
54
+ case 1:
55
+ contents = _b.sent();
56
+ return [2, (0, yaml_1.parse)(contents)];
57
+ }
58
+ });
59
+ });
60
+ })];
61
+ case 1:
62
+ _b.sent();
63
+ return [2];
64
+ }
65
+ });
66
+ }); };
67
+ exports.default = readProvision;
@@ -0,0 +1,7 @@
1
+ import { TestFixture } from '@playwright/test';
2
+ import { PluginFixture, PluginOptions } from '../api';
3
+ import { ExplorePage } from '../models/ExplorePage';
4
+ import { PlaywrightCombinedArgs } from './types';
5
+ type ExplorePageFixture = TestFixture<ExplorePage, PluginFixture & PluginOptions & PlaywrightCombinedArgs>;
6
+ declare const explorePage: ExplorePageFixture;
7
+ export default explorePage;
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ var ExplorePage_1 = require("../models/ExplorePage");
40
+ var explorePage = function (_a, use) {
41
+ var page = _a.page, selectors = _a.selectors, grafanaVersion = _a.grafanaVersion, request = _a.request;
42
+ return __awaiter(void 0, void 0, void 0, function () {
43
+ var explorePage;
44
+ return __generator(this, function (_b) {
45
+ switch (_b.label) {
46
+ case 0:
47
+ explorePage = new ExplorePage_1.ExplorePage({ page: page, selectors: selectors, grafanaVersion: grafanaVersion, request: request });
48
+ return [4, explorePage.goto()];
49
+ case 1:
50
+ _b.sent();
51
+ return [4, use(explorePage)];
52
+ case 2:
53
+ _b.sent();
54
+ return [2];
55
+ }
56
+ });
57
+ });
58
+ };
59
+ exports.default = explorePage;
@@ -0,0 +1,6 @@
1
+ import { TestFixture } from '@playwright/test';
2
+ import { PluginFixture, PluginOptions } from '../api';
3
+ import { PlaywrightCombinedArgs } from './types';
4
+ type GrafanaVersion = TestFixture<string, PluginFixture & PluginOptions & PlaywrightCombinedArgs>;
5
+ declare const grafanaVersion: GrafanaVersion;
6
+ export default grafanaVersion;
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ var grafanaVersion = function (_a, use) {
40
+ var page = _a.page;
41
+ return __awaiter(void 0, void 0, void 0, function () {
42
+ var grafanaVersion;
43
+ return __generator(this, function (_b) {
44
+ switch (_b.label) {
45
+ case 0:
46
+ grafanaVersion = process.env.GRAFANA_VERSION;
47
+ if (!!grafanaVersion) return [3, 3];
48
+ return [4, page.goto('/')];
49
+ case 1:
50
+ _b.sent();
51
+ return [4, page.evaluate('window.grafanaBootData.settings.buildInfo.version')];
52
+ case 2:
53
+ grafanaVersion = _b.sent();
54
+ _b.label = 3;
55
+ case 3: return [4, use(grafanaVersion.replace(/\-.*/, ''))];
56
+ case 4:
57
+ _b.sent();
58
+ return [2];
59
+ }
60
+ });
61
+ });
62
+ };
63
+ exports.default = grafanaVersion;
@@ -0,0 +1,14 @@
1
+ declare const _default: {
2
+ selectors: (args: import("..").PluginFixture & import("..").PluginOptions & import("playwright/test").PlaywrightTestArgs & import("playwright/test").PlaywrightTestOptions & import("playwright/test").PlaywrightWorkerArgs & import("playwright/test").PlaywrightWorkerOptions, use: (r: import("..").E2ESelectors) => Promise<void>, testInfo: import("playwright/test").TestInfo) => any;
3
+ grafanaVersion: (args: import("..").PluginFixture & import("..").PluginOptions & import("playwright/test").PlaywrightTestArgs & import("playwright/test").PlaywrightTestOptions & import("playwright/test").PlaywrightWorkerArgs & import("playwright/test").PlaywrightWorkerOptions, use: (r: string) => Promise<void>, testInfo: import("playwright/test").TestInfo) => any;
4
+ login: (args: import("..").PluginFixture & import("..").PluginOptions & import("playwright/test").PlaywrightTestArgs & import("playwright/test").PlaywrightTestOptions & import("playwright/test").PlaywrightWorkerArgs & import("playwright/test").PlaywrightWorkerOptions, use: (r: () => Promise<void>) => Promise<void>, testInfo: import("playwright/test").TestInfo) => any;
5
+ createDataSourceConfigPage: (args: import("..").PluginFixture & import("..").PluginOptions & import("playwright/test").PlaywrightTestArgs & import("playwright/test").PlaywrightTestOptions & import("playwright/test").PlaywrightWorkerArgs & import("playwright/test").PlaywrightWorkerOptions, use: (r: (args: import("../types").CreateDataSourcePageArgs) => Promise<import("../models").DataSourceConfigPage>) => Promise<void>, testInfo: import("playwright/test").TestInfo) => any;
6
+ newDashboardPage: (args: import("..").PluginFixture & import("..").PluginOptions & import("playwright/test").PlaywrightTestArgs & import("playwright/test").PlaywrightTestOptions & import("playwright/test").PlaywrightWorkerArgs & import("playwright/test").PlaywrightWorkerOptions, use: (r: import("../models").DashboardPage) => Promise<void>, testInfo: import("playwright/test").TestInfo) => any;
7
+ panelEditPage: (args: import("..").PluginFixture & import("..").PluginOptions & import("playwright/test").PlaywrightTestArgs & import("playwright/test").PlaywrightTestOptions & import("playwright/test").PlaywrightWorkerArgs & import("playwright/test").PlaywrightWorkerOptions, use: (r: import("../models").PanelEditPage) => Promise<void>, testInfo: import("playwright/test").TestInfo) => any;
8
+ variableEditPage: (args: import("..").PluginFixture & import("..").PluginOptions & import("playwright/test").PlaywrightTestArgs & import("playwright/test").PlaywrightTestOptions & import("playwright/test").PlaywrightWorkerArgs & import("playwright/test").PlaywrightWorkerOptions, use: (r: import("../models").VariableEditPage) => Promise<void>, testInfo: import("playwright/test").TestInfo) => any;
9
+ annotationEditPage: (args: import("..").PluginFixture & import("..").PluginOptions & import("playwright/test").PlaywrightTestArgs & import("playwright/test").PlaywrightTestOptions & import("playwright/test").PlaywrightWorkerArgs & import("playwright/test").PlaywrightWorkerOptions, use: (r: import("../models").AnnotationEditPage) => Promise<void>, testInfo: import("playwright/test").TestInfo) => any;
10
+ explorePage: (args: import("..").PluginFixture & import("..").PluginOptions & import("playwright/test").PlaywrightTestArgs & import("playwright/test").PlaywrightTestOptions & import("playwright/test").PlaywrightWorkerArgs & import("playwright/test").PlaywrightWorkerOptions, use: (r: import("../models/ExplorePage").ExplorePage) => Promise<void>, testInfo: import("playwright/test").TestInfo) => any;
11
+ createDataSource: (args: import("..").PluginFixture & import("..").PluginOptions & import("playwright/test").PlaywrightTestArgs & import("playwright/test").PlaywrightTestOptions & import("playwright/test").PlaywrightWorkerArgs & import("playwright/test").PlaywrightWorkerOptions, use: (r: (args: import("../types").CreateDataSourceArgs) => Promise<import("../types").DataSource<any>>) => Promise<void>, testInfo: import("playwright/test").TestInfo) => any;
12
+ readProvision: (args: import("..").PluginFixture & import("..").PluginOptions & import("playwright/test").PlaywrightTestArgs & import("playwright/test").PlaywrightTestOptions & import("playwright/test").PlaywrightWorkerArgs & import("playwright/test").PlaywrightWorkerOptions, use: (r: <T = any>(args: import("../types").ReadProvisionArgs) => Promise<T>) => Promise<void>, testInfo: import("playwright/test").TestInfo) => any;
13
+ };
14
+ export default _default;