@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.
- package/README.md +1 -0
- package/dist/api.d.ts +41 -0
- package/dist/api.js +15 -0
- package/dist/e2e-selectors/index.d.ts +2 -0
- package/dist/e2e-selectors/index.js +20 -0
- package/dist/e2e-selectors/resolver.d.ts +3 -0
- package/dist/e2e-selectors/resolver.js +38 -0
- package/dist/e2e-selectors/resolver.test.d.ts +1 -0
- package/dist/e2e-selectors/resolver.test.js +39 -0
- package/dist/e2e-selectors/types.d.ts +691 -0
- package/dist/e2e-selectors/types.js +2 -0
- package/dist/e2e-selectors/versioned/apis.d.ts +29 -0
- package/dist/e2e-selectors/versioned/apis.js +35 -0
- package/dist/e2e-selectors/versioned/components.d.ts +419 -0
- package/dist/e2e-selectors/versioned/components.js +426 -0
- package/dist/e2e-selectors/versioned/constants.d.ts +1 -0
- package/dist/e2e-selectors/versioned/constants.js +4 -0
- package/dist/e2e-selectors/versioned/index.d.ts +2 -0
- package/dist/e2e-selectors/versioned/index.js +7 -0
- package/dist/e2e-selectors/versioned/pages.d.ts +334 -0
- package/dist/e2e-selectors/versioned/pages.js +345 -0
- package/dist/e2e-selectors/versioned/types.d.ts +8 -0
- package/dist/e2e-selectors/versioned/types.js +2 -0
- package/dist/fixtures/annotationEditPage.d.ts +7 -0
- package/dist/fixtures/annotationEditPage.js +62 -0
- package/dist/fixtures/commands/createDataSource.d.ts +8 -0
- package/dist/fixtures/commands/createDataSource.js +110 -0
- package/dist/fixtures/commands/createDataSourceConfigPage.d.ts +8 -0
- package/dist/fixtures/commands/createDataSourceConfigPage.js +82 -0
- package/dist/fixtures/commands/login.d.ts +6 -0
- package/dist/fixtures/commands/login.js +88 -0
- package/dist/fixtures/commands/readProvision.d.ts +7 -0
- package/dist/fixtures/commands/readProvision.js +67 -0
- package/dist/fixtures/explorePage.d.ts +7 -0
- package/dist/fixtures/explorePage.js +59 -0
- package/dist/fixtures/grafanaVersion.d.ts +6 -0
- package/dist/fixtures/grafanaVersion.js +63 -0
- package/dist/fixtures/index.d.ts +14 -0
- package/dist/fixtures/index.js +29 -0
- package/dist/fixtures/newDashboardPage.d.ts +7 -0
- package/dist/fixtures/newDashboardPage.js +59 -0
- package/dist/fixtures/panelEditPage.d.ts +7 -0
- package/dist/fixtures/panelEditPage.js +56 -0
- package/dist/fixtures/selectors.d.ts +7 -0
- package/dist/fixtures/selectors.js +62 -0
- package/dist/fixtures/types.d.ts +2 -0
- package/dist/fixtures/types.js +2 -0
- package/dist/fixtures/variableEditPage.d.ts +7 -0
- package/dist/fixtures/variableEditPage.js +62 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +22 -0
- package/dist/matchers/index.d.ts +20 -0
- package/dist/matchers/index.js +13 -0
- package/dist/matchers/toBeOK.d.ts +7 -0
- package/dist/matchers/toBeOK.js +69 -0
- package/dist/matchers/toDisplayPreviews.d.ts +7 -0
- package/dist/matchers/toDisplayPreviews.js +70 -0
- package/dist/matchers/toHavePanelError.d.ts +9 -0
- package/dist/matchers/toHavePanelError.js +74 -0
- package/dist/matchers/utils.d.ts +1 -0
- package/dist/matchers/utils.js +5 -0
- package/dist/models/AnnotationEditPage.d.ts +8 -0
- package/dist/models/AnnotationEditPage.js +82 -0
- package/dist/models/AnnotationPage.d.ts +8 -0
- package/dist/models/AnnotationPage.js +123 -0
- package/dist/models/DashboardPage.d.ts +15 -0
- package/dist/models/DashboardPage.js +163 -0
- package/dist/models/DataSourceConfigPage.d.ts +10 -0
- package/dist/models/DataSourceConfigPage.js +135 -0
- package/dist/models/DataSourcePicker.d.ts +6 -0
- package/dist/models/DataSourcePicker.js +86 -0
- package/dist/models/ExplorePage.d.ts +12 -0
- package/dist/models/ExplorePage.js +130 -0
- package/dist/models/GrafanaPage.d.ts +11 -0
- package/dist/models/GrafanaPage.js +150 -0
- package/dist/models/PanelEditPage.d.ts +15 -0
- package/dist/models/PanelEditPage.js +165 -0
- package/dist/models/TimeRange.d.ts +6 -0
- package/dist/models/TimeRange.js +119 -0
- package/dist/models/VariableEditPage.d.ts +10 -0
- package/dist/models/VariableEditPage.js +109 -0
- package/dist/models/VariablePage.d.ts +8 -0
- package/dist/models/VariablePage.js +107 -0
- package/dist/models/index.d.ts +8 -0
- package/dist/models/index.js +19 -0
- package/dist/selectorEngine.d.ts +4 -0
- package/dist/selectorEngine.js +18 -0
- package/dist/types.d.ts +54 -0
- package/dist/types.js +2 -0
- package/package.json +4 -4
package/README.md
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# Grafana / Plugin E2E
|
package/dist/api.d.ts
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { E2ESelectors } from './e2e-selectors/types';
|
|
2
|
+
import { CreateDataSourceArgs, CreateDataSourcePageArgs, DataSource, ReadProvisionArgs } from './types';
|
|
3
|
+
import { PanelEditPage, DataSourceConfigPage, DashboardPage, VariableEditPage, AnnotationEditPage } from './models';
|
|
4
|
+
import { ExplorePage } from './models/ExplorePage';
|
|
5
|
+
export type PluginOptions = {
|
|
6
|
+
selectorRegistration: void;
|
|
7
|
+
};
|
|
8
|
+
export type PluginFixture = {
|
|
9
|
+
grafanaVersion: string;
|
|
10
|
+
selectors: E2ESelectors;
|
|
11
|
+
newDashboardPage: DashboardPage;
|
|
12
|
+
panelEditPage: PanelEditPage;
|
|
13
|
+
variableEditPage: VariableEditPage;
|
|
14
|
+
annotationEditPage: AnnotationEditPage;
|
|
15
|
+
explorePage: ExplorePage;
|
|
16
|
+
createDataSourceConfigPage: (args: CreateDataSourcePageArgs) => Promise<DataSourceConfigPage>;
|
|
17
|
+
createDataSource: (args: CreateDataSourceArgs) => Promise<DataSource>;
|
|
18
|
+
login: () => Promise<void>;
|
|
19
|
+
readProvision<T = any>(args: ReadProvisionArgs): Promise<T>;
|
|
20
|
+
};
|
|
21
|
+
export declare const test: import("@playwright/test").TestType<import("@playwright/test").PlaywrightTestArgs & import("@playwright/test").PlaywrightTestOptions & PluginFixture & PluginOptions, import("@playwright/test").PlaywrightWorkerArgs & import("@playwright/test").PlaywrightWorkerOptions>;
|
|
22
|
+
export declare const expect: import("@playwright/test").Expect<{
|
|
23
|
+
toBeOK: (request: Promise<import("playwright-core").Response>) => Promise<{
|
|
24
|
+
message: () => string;
|
|
25
|
+
pass: boolean;
|
|
26
|
+
actual: number;
|
|
27
|
+
}>;
|
|
28
|
+
toHavePanelError: (panelError: import("./types").PanelError, options?: {
|
|
29
|
+
timeout?: number;
|
|
30
|
+
}) => Promise<{
|
|
31
|
+
message: () => any;
|
|
32
|
+
pass: boolean;
|
|
33
|
+
actual: number;
|
|
34
|
+
}>;
|
|
35
|
+
toDisplayPreviews: (variableEditPage: VariableEditPage, previewTexts: (string | RegExp)[]) => Promise<{
|
|
36
|
+
pass: boolean;
|
|
37
|
+
actual: boolean;
|
|
38
|
+
message: () => string;
|
|
39
|
+
}>;
|
|
40
|
+
}>;
|
|
41
|
+
export { selectors } from '@playwright/test';
|
package/dist/api.js
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.selectors = exports.expect = exports.test = void 0;
|
|
7
|
+
var test_1 = require("@playwright/test");
|
|
8
|
+
var fixtures_1 = __importDefault(require("./fixtures"));
|
|
9
|
+
var matchers_1 = __importDefault(require("./matchers"));
|
|
10
|
+
var selectorEngine_1 = require("./selectorEngine");
|
|
11
|
+
exports.test = test_1.test.extend(fixtures_1.default);
|
|
12
|
+
exports.expect = test_1.expect.extend(matchers_1.default);
|
|
13
|
+
test_1.selectors.register('selector', selectorEngine_1.grafanaE2ESelectorEngine);
|
|
14
|
+
var test_2 = require("@playwright/test");
|
|
15
|
+
Object.defineProperty(exports, "selectors", { enumerable: true, get: function () { return test_2.selectors; } });
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.resolveSelectors = void 0;
|
|
18
|
+
var resolver_1 = require("./resolver");
|
|
19
|
+
Object.defineProperty(exports, "resolveSelectors", { enumerable: true, get: function () { return resolver_1.resolveSelectors; } });
|
|
20
|
+
__exportStar(require("./types"), exports);
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolveSelectors = void 0;
|
|
4
|
+
var semver = require('semver');
|
|
5
|
+
var processSelectors = function (selectors, versionedSelectors, grafanaVersion) {
|
|
6
|
+
var keys = Object.keys(versionedSelectors);
|
|
7
|
+
for (var index = 0; index < keys.length; index++) {
|
|
8
|
+
var key = keys[index];
|
|
9
|
+
var value = versionedSelectors[key];
|
|
10
|
+
if (typeof value === 'object' && Object.keys(value).length > 0 && !semver.valid(Object.keys(value)[0])) {
|
|
11
|
+
selectors[key] = processSelectors({}, value, grafanaVersion);
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
14
|
+
if (typeof value === 'object' && Object.keys(value).length > 0 && semver.valid(Object.keys(value)[0])) {
|
|
15
|
+
var sorted = Object.keys(value).sort(semver.rcompare);
|
|
16
|
+
var validVersion = sorted[0];
|
|
17
|
+
for (var index_1 = 0; index_1 < sorted.length; index_1++) {
|
|
18
|
+
var version = sorted[index_1];
|
|
19
|
+
if (semver.gte(grafanaVersion, version)) {
|
|
20
|
+
validVersion = version;
|
|
21
|
+
break;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
selectors[key] = value[validVersion];
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
selectors[key] = value;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
continue;
|
|
31
|
+
}
|
|
32
|
+
return selectors;
|
|
33
|
+
};
|
|
34
|
+
var resolveSelectors = function (versionedSelectors, grafanaVersion) {
|
|
35
|
+
var selectors = {};
|
|
36
|
+
return processSelectors(selectors, versionedSelectors, grafanaVersion.replace(/\-.*/, ''));
|
|
37
|
+
};
|
|
38
|
+
exports.resolveSelectors = resolveSelectors;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var resolver_1 = require("./resolver");
|
|
4
|
+
var versioned_1 = require("./versioned");
|
|
5
|
+
var apis_1 = require("./versioned/apis");
|
|
6
|
+
var constants_1 = require("./versioned/constants");
|
|
7
|
+
var GRAFANA_VERSION = '10.2.0';
|
|
8
|
+
var versionedSelectors = {
|
|
9
|
+
components: versioned_1.versionedComponents,
|
|
10
|
+
pages: versioned_1.versionedPages,
|
|
11
|
+
apis: apis_1.versionedAPIs,
|
|
12
|
+
};
|
|
13
|
+
var originalVersionedSelectors = versionedSelectors;
|
|
14
|
+
describe('resolveSelectors', function () {
|
|
15
|
+
afterEach(function () {
|
|
16
|
+
versionedSelectors = originalVersionedSelectors;
|
|
17
|
+
});
|
|
18
|
+
test('handles selector without version', function () {
|
|
19
|
+
versionedSelectors.components.PanelEditor.General.content = 'Panel editor content';
|
|
20
|
+
var selectors = (0, resolver_1.resolveSelectors)(versionedSelectors, GRAFANA_VERSION);
|
|
21
|
+
expect(selectors.components.PanelEditor.General.content).toBe('Panel editor content');
|
|
22
|
+
});
|
|
23
|
+
test('returns the right selector value when it has multiple versions', function () {
|
|
24
|
+
var _a;
|
|
25
|
+
versionedSelectors.components.CodeEditor.container = (_a = {
|
|
26
|
+
'10.3.0': 'data-testid Code editor container'
|
|
27
|
+
},
|
|
28
|
+
_a[constants_1.MIN_GRAFANA_VERSION] = 'Code editor container',
|
|
29
|
+
_a);
|
|
30
|
+
var selectors = (0, resolver_1.resolveSelectors)(versionedSelectors, '10.4.0');
|
|
31
|
+
expect(selectors.components.CodeEditor.container).toBe('data-testid Code editor container');
|
|
32
|
+
selectors = (0, resolver_1.resolveSelectors)(versionedSelectors, '10.3.0');
|
|
33
|
+
expect(selectors.components.CodeEditor.container).toBe('data-testid Code editor container');
|
|
34
|
+
selectors = (0, resolver_1.resolveSelectors)(versionedSelectors, '10.3.0-pre');
|
|
35
|
+
expect(selectors.components.CodeEditor.container).toBe('data-testid Code editor container');
|
|
36
|
+
selectors = (0, resolver_1.resolveSelectors)(versionedSelectors, '9.2.0');
|
|
37
|
+
expect(selectors.components.CodeEditor.container).toBe('Code editor container');
|
|
38
|
+
});
|
|
39
|
+
});
|