@axinom/mosaic-e2e-page-model 0.9.0-rc.6 → 0.9.0-rc.7
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/dist/managed-services/index.d.ts +0 -1
- package/dist/managed-services/index.d.ts.map +1 -1
- package/dist/managed-services/index.js +0 -1
- package/dist/managed-services/index.js.map +1 -1
- package/dist/page-model.d.ts +1 -3
- package/dist/page-model.d.ts.map +1 -1
- package/dist/page-model.js +0 -2
- package/dist/page-model.js.map +1 -1
- package/package.json +3 -3
- package/src/managed-services/index.ts +0 -1
- package/src/page-model.ts +0 -8
- package/dist/managed-services/channel-service.d.ts +0 -113
- package/dist/managed-services/channel-service.d.ts.map +0 -1
- package/dist/managed-services/channel-service.js +0 -184
- package/dist/managed-services/channel-service.js.map +0 -1
- package/src/managed-services/channel-service.ts +0 -231
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/managed-services/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/managed-services/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC"}
|
|
@@ -14,7 +14,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./channel-service"), exports);
|
|
18
17
|
__exportStar(require("./image-service"), exports);
|
|
19
18
|
__exportStar(require("./monetization-service"), exports);
|
|
20
19
|
__exportStar(require("./video-service"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/managed-services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/managed-services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC;AAChC,yDAAuC;AACvC,kDAAgC"}
|
package/dist/page-model.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { UiWorkflowsModel } from '@axinom/mosaic-e2e-ui-selectors';
|
|
2
2
|
import { Page } from 'playwright-core';
|
|
3
|
-
import {
|
|
3
|
+
import { ImageService, MonetizationService, VideoService } from './managed-services';
|
|
4
4
|
import { SignInPage } from './sign-in';
|
|
5
5
|
import { UiShellModel } from './ui-selectors';
|
|
6
6
|
/**
|
|
@@ -40,8 +40,6 @@ export declare class PageModel {
|
|
|
40
40
|
readonly videoService: VideoService;
|
|
41
41
|
/** A model for the managed monetization service. */
|
|
42
42
|
readonly monetizationService: MonetizationService;
|
|
43
|
-
/** A model for management system's channel service. */
|
|
44
|
-
readonly channelService: ChannelService;
|
|
45
43
|
/** This method waits for the management system to load after sign in. */
|
|
46
44
|
waitForAppToLoad(): Promise<void>;
|
|
47
45
|
}
|
package/dist/page-model.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-model.d.ts","sourceRoot":"","sources":["../src/page-model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"page-model.d.ts","sourceRoot":"","sources":["../src/page-model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,YAAY,EACb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C;;;GAGG;AACH,qBAAa,SAAS;IAElB,kCAAkC;IAClC,QAAQ,CAAC,IAAI,EAAE,IAAI;;IADnB,kCAAkC;IACzB,IAAI,EAAE,IAAI;IAGrB;;;;;;;OAOG;IACH,QAAQ,CAAC,OAAO,eAA+B;IAE/C;;;;;;;;OAQG;IACH,QAAQ,CAAC,kBAAkB,mBAAmC;IAE9D,4CAA4C;IAC5C,QAAQ,CAAC,UAAU,aAA6B;IAEhD,6CAA6C;IAC7C,QAAQ,CAAC,YAAY,eAInB;IAEF,6CAA6C;IAC7C,QAAQ,CAAC,YAAY,eAInB;IAEF,oDAAoD;IACpD,QAAQ,CAAC,mBAAmB,sBAI1B;IAEF,yEAAyE;IACnE,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;CAWxC"}
|
package/dist/page-model.js
CHANGED
|
@@ -41,8 +41,6 @@ class PageModel {
|
|
|
41
41
|
this.videoService = new managed_services_1.VideoService(this.page, this.uiShell, this.uiManagedWorkflows);
|
|
42
42
|
/** A model for the managed monetization service. */
|
|
43
43
|
this.monetizationService = new managed_services_1.MonetizationService(this.page, this.uiShell, this.uiManagedWorkflows);
|
|
44
|
-
/** A model for management system's channel service. */
|
|
45
|
-
this.channelService = new managed_services_1.ChannelService(this.page, this.uiShell, this.uiManagedWorkflows);
|
|
46
44
|
}
|
|
47
45
|
/** This method waits for the management system to load after sign in. */
|
|
48
46
|
async waitForAppToLoad() {
|
package/dist/page-model.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-model.js","sourceRoot":"","sources":["../src/page-model.ts"],"names":[],"mappings":";;;AAAA,6EAAmE;AAEnE,
|
|
1
|
+
{"version":3,"file":"page-model.js","sourceRoot":"","sources":["../src/page-model.ts"],"names":[],"mappings":";;;AAAA,6EAAmE;AAEnE,yDAI4B;AAC5B,uCAAuC;AACvC,iDAA8C;AAE9C;;;GAGG;AACH,MAAa,SAAS;IACpB;IACE,kCAAkC;IACzB,IAAU;QAAV,SAAI,GAAJ,IAAI,CAAM;QAGrB;;;;;;;WAOG;QACM,YAAO,GAAG,IAAI,2BAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE/C;;;;;;;;WAQG;QACM,uBAAkB,GAAG,IAAI,0CAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE9D,4CAA4C;QACnC,eAAU,GAAG,IAAI,oBAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEhD,6CAA6C;QACpC,iBAAY,GAAG,IAAI,+BAAY,CACtC,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,kBAAkB,CACxB,CAAC;QAEF,6CAA6C;QACpC,iBAAY,GAAG,IAAI,+BAAY,CACtC,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,kBAAkB,CACxB,CAAC;QAEF,oDAAoD;QAC3C,wBAAmB,GAAG,IAAI,sCAAmB,CACpD,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,kBAAkB,CACxB,CAAC;IA7CC,CAAC;IA+CJ,yEAAyE;IACzE,KAAK,CAAC,gBAAgB;QACpB,oDAAoD;QACpD,IAAI;YACF,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;YACxE,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;SAC/D;QAAC,WAAM;YACN,MAAM,IAAI,KAAK,CACb,oFAAoF,CACrF,CAAC;SACH;IACH,CAAC;CACF;AA/DD,8BA+DC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@axinom/mosaic-e2e-page-model",
|
|
3
|
-
"version": "0.9.0-rc.
|
|
3
|
+
"version": "0.9.0-rc.7",
|
|
4
4
|
"description": "A page model for testing an Axinom Mosaic Management System with Playwright.",
|
|
5
5
|
"author": "Axinom",
|
|
6
6
|
"license": "PROPRIETARY",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"dev": "tsc -w"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@axinom/mosaic-e2e-ui-selectors": "^0.8.0-rc.
|
|
25
|
+
"@axinom/mosaic-e2e-ui-selectors": "^0.8.0-rc.7"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"@types/node": "^18.11.18",
|
|
@@ -35,5 +35,5 @@
|
|
|
35
35
|
"publishConfig": {
|
|
36
36
|
"access": "public"
|
|
37
37
|
},
|
|
38
|
-
"gitHead": "
|
|
38
|
+
"gitHead": "9df1857d137a9f1556f33ad2ed8cef698f1006f8"
|
|
39
39
|
}
|
package/src/page-model.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { UiWorkflowsModel } from '@axinom/mosaic-e2e-ui-selectors';
|
|
2
2
|
import { Page } from 'playwright-core';
|
|
3
3
|
import {
|
|
4
|
-
ChannelService,
|
|
5
4
|
ImageService,
|
|
6
5
|
MonetizationService,
|
|
7
6
|
VideoService,
|
|
@@ -64,13 +63,6 @@ export class PageModel {
|
|
|
64
63
|
this.uiManagedWorkflows,
|
|
65
64
|
);
|
|
66
65
|
|
|
67
|
-
/** A model for management system's channel service. */
|
|
68
|
-
readonly channelService = new ChannelService(
|
|
69
|
-
this.page,
|
|
70
|
-
this.uiShell,
|
|
71
|
-
this.uiManagedWorkflows,
|
|
72
|
-
);
|
|
73
|
-
|
|
74
66
|
/** This method waits for the management system to load after sign in. */
|
|
75
67
|
async waitForAppToLoad(): Promise<void> {
|
|
76
68
|
// expect elements 'header' and 'main' to be visible
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
import { ManagedServiceModel } from './managed-service-model';
|
|
2
|
-
export declare class ChannelService extends ManagedServiceModel {
|
|
3
|
-
/**
|
|
4
|
-
* This method creates a channel by title.
|
|
5
|
-
* The management system must be loaded & signed in before using this method.
|
|
6
|
-
*
|
|
7
|
-
* The following steps will be taken:
|
|
8
|
-
* - Navigate to the channels station
|
|
9
|
-
* - Click on [New] button
|
|
10
|
-
* - Populate channel's title and click on [Proceed] button in order to save newly created channel
|
|
11
|
-
*
|
|
12
|
-
* @param args.channelTitle The title of the channel
|
|
13
|
-
*/
|
|
14
|
-
createChannel(args: {
|
|
15
|
-
channelTitle: string;
|
|
16
|
-
}): Promise<void>;
|
|
17
|
-
/**
|
|
18
|
-
* This method opens channel properties page for a channel.
|
|
19
|
-
* The management system must be loaded & signed in before using this method.
|
|
20
|
-
*
|
|
21
|
-
* The following steps will be taken:
|
|
22
|
-
* - Navigate to the channels station
|
|
23
|
-
* - Filter out for the particular channel by title
|
|
24
|
-
* - Open channel properties page
|
|
25
|
-
*
|
|
26
|
-
* @param args.channelTitle The title of the channel
|
|
27
|
-
*/
|
|
28
|
-
navigateToChannelProperties(args: {
|
|
29
|
-
channelTitle: string;
|
|
30
|
-
}): Promise<void>;
|
|
31
|
-
/**
|
|
32
|
-
* This method publishes a channel.
|
|
33
|
-
* The management system must be loaded & signed in before using this method.
|
|
34
|
-
*
|
|
35
|
-
* The following steps will be taken:
|
|
36
|
-
* - Navigate to the channels station
|
|
37
|
-
* - Filter out for the particular channel by title
|
|
38
|
-
* - Open channel properties page
|
|
39
|
-
* - Publish the channel
|
|
40
|
-
*
|
|
41
|
-
* @param args.channelTitle The title of the channel
|
|
42
|
-
*/
|
|
43
|
-
publishChannel(args: {
|
|
44
|
-
channelTitle: string;
|
|
45
|
-
}): Promise<void>;
|
|
46
|
-
/**
|
|
47
|
-
* This method unpublishes a channel.
|
|
48
|
-
* The management system must be loaded & signed in before using this method.
|
|
49
|
-
*
|
|
50
|
-
* The following steps will be taken:
|
|
51
|
-
* - Navigate to the channels station
|
|
52
|
-
* - Filter out for the particular channel by title
|
|
53
|
-
* - Open channel properties page
|
|
54
|
-
* - Unpublish the channel
|
|
55
|
-
*
|
|
56
|
-
* @param args.channelTitle The title of the channel
|
|
57
|
-
*/
|
|
58
|
-
unpublishChannel(args: {
|
|
59
|
-
channelTitle: string;
|
|
60
|
-
}): Promise<void>;
|
|
61
|
-
/**
|
|
62
|
-
* This method deletes a channel.
|
|
63
|
-
* The management system must be loaded & signed in before using this method.
|
|
64
|
-
*
|
|
65
|
-
* The following steps will be taken:
|
|
66
|
-
* - Navigate to the channels station
|
|
67
|
-
* - Filter out for the particular channel by title
|
|
68
|
-
* - Open channel properties page
|
|
69
|
-
* - Delete the channel
|
|
70
|
-
*
|
|
71
|
-
* @param args.channelTitle The title of the channel
|
|
72
|
-
*/
|
|
73
|
-
deleteChannel(args: {
|
|
74
|
-
channelTitle: string;
|
|
75
|
-
}): Promise<void>;
|
|
76
|
-
/**
|
|
77
|
-
* This method creates a playlist for a channel.
|
|
78
|
-
* The management system must be loaded & signed in before using this method.
|
|
79
|
-
*
|
|
80
|
-
* The following steps will be taken:
|
|
81
|
-
* - Navigate to the channels station
|
|
82
|
-
* - Filter out for the particular channel by title
|
|
83
|
-
* - Open channel properties page
|
|
84
|
-
* - Click on [Playlists] button
|
|
85
|
-
* - Click on [New] button on the Playlists station
|
|
86
|
-
* - Populate Scheduled Start date and proceed in order to save newly created playlist
|
|
87
|
-
*
|
|
88
|
-
* @param args.channelTitle The title of the channel
|
|
89
|
-
* @param args.scheduledStart The start date/time of the playlist
|
|
90
|
-
*/
|
|
91
|
-
createPlaylist(args: {
|
|
92
|
-
channelTitle: string;
|
|
93
|
-
scheduledStart: string;
|
|
94
|
-
}): Promise<void>;
|
|
95
|
-
/**
|
|
96
|
-
* This method publishes a playlist.
|
|
97
|
-
* The management system must be loaded & signed in before using this method.
|
|
98
|
-
*
|
|
99
|
-
* The following steps will be taken:
|
|
100
|
-
* - Navigate to the channels station
|
|
101
|
-
* - Filter out for the particular channel by title
|
|
102
|
-
* - Open channel properties page
|
|
103
|
-
* - Click on [Playlists] button
|
|
104
|
-
* - Click on first playlist found
|
|
105
|
-
* - Publish the playlist
|
|
106
|
-
*
|
|
107
|
-
* @param args.channelTitle The title of the channel
|
|
108
|
-
*/
|
|
109
|
-
publishPlaylist(args: {
|
|
110
|
-
channelTitle: string;
|
|
111
|
-
}): Promise<void>;
|
|
112
|
-
}
|
|
113
|
-
//# sourceMappingURL=channel-service.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"channel-service.d.ts","sourceRoot":"","sources":["../../src/managed-services/channel-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D,qBAAa,cAAe,SAAQ,mBAAmB;IACrD;;;;;;;;;;OAUG;IACG,aAAa,CAAC,IAAI,EAAE;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBlE;;;;;;;;;;OAUG;IACG,2BAA2B,CAAC,IAAI,EAAE;QACtC,YAAY,EAAE,MAAM,CAAC;KACtB,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBjB;;;;;;;;;;;OAWG;IACG,cAAc,CAAC,IAAI,EAAE;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBnE;;;;;;;;;;;OAWG;IACG,gBAAgB,CAAC,IAAI,EAAE;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAarE;;;;;;;;;;;OAWG;IACG,aAAa,CAAC,IAAI,EAAE;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBlE;;;;;;;;;;;;;;OAcG;IACG,cAAc,CAAC,IAAI,EAAE;QACzB,YAAY,EAAE,MAAM,CAAC;QACrB,cAAc,EAAE,MAAM,CAAC;KACxB,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBjB;;;;;;;;;;;;;OAaG;IACG,eAAe,CAAC,IAAI,EAAE;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAsBrE"}
|
|
@@ -1,184 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ChannelService = void 0;
|
|
4
|
-
const managed_service_model_1 = require("./managed-service-model");
|
|
5
|
-
class ChannelService extends managed_service_model_1.ManagedServiceModel {
|
|
6
|
-
/**
|
|
7
|
-
* This method creates a channel by title.
|
|
8
|
-
* The management system must be loaded & signed in before using this method.
|
|
9
|
-
*
|
|
10
|
-
* The following steps will be taken:
|
|
11
|
-
* - Navigate to the channels station
|
|
12
|
-
* - Click on [New] button
|
|
13
|
-
* - Populate channel's title and click on [Proceed] button in order to save newly created channel
|
|
14
|
-
*
|
|
15
|
-
* @param args.channelTitle The title of the channel
|
|
16
|
-
*/
|
|
17
|
-
async createChannel(args) {
|
|
18
|
-
const { uiShell, uiManagedWorkflows } = this;
|
|
19
|
-
// create channel
|
|
20
|
-
await uiShell.goToNavigationPanelItemByTestIds('channels');
|
|
21
|
-
await uiManagedWorkflows.list.waitForData();
|
|
22
|
-
await uiShell.waitForPageTransition(uiManagedWorkflows.pageHeader.actions.getActionByLabel('New').click());
|
|
23
|
-
await uiManagedWorkflows.form
|
|
24
|
-
.getFieldByLabel('Title')
|
|
25
|
-
.asSingleLineTextField()
|
|
26
|
-
.setValue(args.channelTitle);
|
|
27
|
-
await uiShell.waitForPageTransition(uiManagedWorkflows.actions.getActionByLabel('Proceed').click());
|
|
28
|
-
await uiManagedWorkflows.form.waitForData();
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* This method opens channel properties page for a channel.
|
|
32
|
-
* The management system must be loaded & signed in before using this method.
|
|
33
|
-
*
|
|
34
|
-
* The following steps will be taken:
|
|
35
|
-
* - Navigate to the channels station
|
|
36
|
-
* - Filter out for the particular channel by title
|
|
37
|
-
* - Open channel properties page
|
|
38
|
-
*
|
|
39
|
-
* @param args.channelTitle The title of the channel
|
|
40
|
-
*/
|
|
41
|
-
async navigateToChannelProperties(args) {
|
|
42
|
-
const { uiShell, uiManagedWorkflows } = this;
|
|
43
|
-
// filter out newly created channel
|
|
44
|
-
await uiShell.goToNavigationPanelItemByTestIds('channels');
|
|
45
|
-
await uiManagedWorkflows.list.waitForData();
|
|
46
|
-
await uiManagedWorkflows.filters
|
|
47
|
-
.getFilterByName('title')
|
|
48
|
-
.asFreeTextFilter()
|
|
49
|
-
.setValue(args.channelTitle);
|
|
50
|
-
await uiManagedWorkflows.list.waitForData();
|
|
51
|
-
// navigate to the channel properties station
|
|
52
|
-
await uiShell.waitForPageTransition(uiManagedWorkflows.list.getRow(1).actionButton.click());
|
|
53
|
-
await uiManagedWorkflows.form.waitForData();
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* This method publishes a channel.
|
|
57
|
-
* The management system must be loaded & signed in before using this method.
|
|
58
|
-
*
|
|
59
|
-
* The following steps will be taken:
|
|
60
|
-
* - Navigate to the channels station
|
|
61
|
-
* - Filter out for the particular channel by title
|
|
62
|
-
* - Open channel properties page
|
|
63
|
-
* - Publish the channel
|
|
64
|
-
*
|
|
65
|
-
* @param args.channelTitle The title of the channel
|
|
66
|
-
*/
|
|
67
|
-
async publishChannel(args) {
|
|
68
|
-
const { uiShell, uiManagedWorkflows } = this;
|
|
69
|
-
this.navigateToChannelProperties({
|
|
70
|
-
channelTitle: args.channelTitle,
|
|
71
|
-
});
|
|
72
|
-
// click on [Publishing] button
|
|
73
|
-
await uiManagedWorkflows.form.waitForData();
|
|
74
|
-
await uiShell.waitForPageTransition(uiManagedWorkflows.actions.getActionByLabel('Publishing').click());
|
|
75
|
-
// publish the channel
|
|
76
|
-
await uiManagedWorkflows.actions.getActionByLabel('Publish').click(),
|
|
77
|
-
await uiShell.waitForPageTransition(uiManagedWorkflows.actions.confirmButton.click());
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* This method unpublishes a channel.
|
|
81
|
-
* The management system must be loaded & signed in before using this method.
|
|
82
|
-
*
|
|
83
|
-
* The following steps will be taken:
|
|
84
|
-
* - Navigate to the channels station
|
|
85
|
-
* - Filter out for the particular channel by title
|
|
86
|
-
* - Open channel properties page
|
|
87
|
-
* - Unpublish the channel
|
|
88
|
-
*
|
|
89
|
-
* @param args.channelTitle The title of the channel
|
|
90
|
-
*/
|
|
91
|
-
async unpublishChannel(args) {
|
|
92
|
-
const { uiShell, uiManagedWorkflows } = this;
|
|
93
|
-
this.navigateToChannelProperties({
|
|
94
|
-
channelTitle: args.channelTitle,
|
|
95
|
-
});
|
|
96
|
-
await uiManagedWorkflows.actions.getActionByLabel('Unpublish').click(),
|
|
97
|
-
await uiShell.waitForPageTransition(uiManagedWorkflows.actions.confirmButton.click());
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* This method deletes a channel.
|
|
101
|
-
* The management system must be loaded & signed in before using this method.
|
|
102
|
-
*
|
|
103
|
-
* The following steps will be taken:
|
|
104
|
-
* - Navigate to the channels station
|
|
105
|
-
* - Filter out for the particular channel by title
|
|
106
|
-
* - Open channel properties page
|
|
107
|
-
* - Delete the channel
|
|
108
|
-
*
|
|
109
|
-
* @param args.channelTitle The title of the channel
|
|
110
|
-
*/
|
|
111
|
-
async deleteChannel(args) {
|
|
112
|
-
const { uiShell, uiManagedWorkflows } = this;
|
|
113
|
-
this.navigateToChannelProperties({
|
|
114
|
-
channelTitle: args.channelTitle,
|
|
115
|
-
});
|
|
116
|
-
const action = uiManagedWorkflows.actions.getActionByLabel('Delete');
|
|
117
|
-
try {
|
|
118
|
-
await action.waitFor({ state: 'visible' });
|
|
119
|
-
}
|
|
120
|
-
catch (_a) {
|
|
121
|
-
throw new Error(`The "Delete" action is not visible.`);
|
|
122
|
-
}
|
|
123
|
-
await action.click();
|
|
124
|
-
await uiShell.waitForPageTransition(uiManagedWorkflows.actions.confirmButton.click());
|
|
125
|
-
await uiManagedWorkflows.list.waitForData();
|
|
126
|
-
}
|
|
127
|
-
/**
|
|
128
|
-
* This method creates a playlist for a channel.
|
|
129
|
-
* The management system must be loaded & signed in before using this method.
|
|
130
|
-
*
|
|
131
|
-
* The following steps will be taken:
|
|
132
|
-
* - Navigate to the channels station
|
|
133
|
-
* - Filter out for the particular channel by title
|
|
134
|
-
* - Open channel properties page
|
|
135
|
-
* - Click on [Playlists] button
|
|
136
|
-
* - Click on [New] button on the Playlists station
|
|
137
|
-
* - Populate Scheduled Start date and proceed in order to save newly created playlist
|
|
138
|
-
*
|
|
139
|
-
* @param args.channelTitle The title of the channel
|
|
140
|
-
* @param args.scheduledStart The start date/time of the playlist
|
|
141
|
-
*/
|
|
142
|
-
async createPlaylist(args) {
|
|
143
|
-
const { uiShell, uiManagedWorkflows } = this;
|
|
144
|
-
this.navigateToChannelProperties({
|
|
145
|
-
channelTitle: args.channelTitle,
|
|
146
|
-
});
|
|
147
|
-
await uiShell.waitForPageTransition(uiManagedWorkflows.actions.getActionByLabel('Playlists').click());
|
|
148
|
-
// create playlist
|
|
149
|
-
await uiShell.waitForPageTransition(uiManagedWorkflows.pageHeader.actions.getActionByLabel('New').click());
|
|
150
|
-
await uiManagedWorkflows.form
|
|
151
|
-
.getFieldByLabel('Scheduled Start')
|
|
152
|
-
.asDateTimeField()
|
|
153
|
-
.setValue(args.scheduledStart);
|
|
154
|
-
await uiShell.waitForPageTransition(uiManagedWorkflows.actions.getActionByLabel('Proceed').click());
|
|
155
|
-
}
|
|
156
|
-
/**
|
|
157
|
-
* This method publishes a playlist.
|
|
158
|
-
* The management system must be loaded & signed in before using this method.
|
|
159
|
-
*
|
|
160
|
-
* The following steps will be taken:
|
|
161
|
-
* - Navigate to the channels station
|
|
162
|
-
* - Filter out for the particular channel by title
|
|
163
|
-
* - Open channel properties page
|
|
164
|
-
* - Click on [Playlists] button
|
|
165
|
-
* - Click on first playlist found
|
|
166
|
-
* - Publish the playlist
|
|
167
|
-
*
|
|
168
|
-
* @param args.channelTitle The title of the channel
|
|
169
|
-
*/
|
|
170
|
-
async publishPlaylist(args) {
|
|
171
|
-
const { uiShell, uiManagedWorkflows } = this;
|
|
172
|
-
this.navigateToChannelProperties({
|
|
173
|
-
channelTitle: args.channelTitle,
|
|
174
|
-
});
|
|
175
|
-
// publish playlist
|
|
176
|
-
await uiShell.waitForPageTransition(uiManagedWorkflows.actions.getActionByLabel('Playlists').click());
|
|
177
|
-
await uiShell.waitForPageTransition(uiManagedWorkflows.list.getRow(1).actionButton.click());
|
|
178
|
-
await uiShell.waitForPageTransition(uiManagedWorkflows.actions.getActionByLabel('Publishing').click());
|
|
179
|
-
await uiManagedWorkflows.actions.getActionByLabel('Publish').click(),
|
|
180
|
-
await uiShell.waitForPageTransition(uiManagedWorkflows.actions.confirmButton.click());
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
exports.ChannelService = ChannelService;
|
|
184
|
-
//# sourceMappingURL=channel-service.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"channel-service.js","sourceRoot":"","sources":["../../src/managed-services/channel-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,231 +0,0 @@
|
|
|
1
|
-
import { ManagedServiceModel } from './managed-service-model';
|
|
2
|
-
|
|
3
|
-
export class ChannelService extends ManagedServiceModel {
|
|
4
|
-
/**
|
|
5
|
-
* This method creates a channel by title.
|
|
6
|
-
* The management system must be loaded & signed in before using this method.
|
|
7
|
-
*
|
|
8
|
-
* The following steps will be taken:
|
|
9
|
-
* - Navigate to the channels station
|
|
10
|
-
* - Click on [New] button
|
|
11
|
-
* - Populate channel's title and click on [Proceed] button in order to save newly created channel
|
|
12
|
-
*
|
|
13
|
-
* @param args.channelTitle The title of the channel
|
|
14
|
-
*/
|
|
15
|
-
async createChannel(args: { channelTitle: string }): Promise<void> {
|
|
16
|
-
const { uiShell, uiManagedWorkflows } = this;
|
|
17
|
-
|
|
18
|
-
// create channel
|
|
19
|
-
await uiShell.goToNavigationPanelItemByTestIds('channels');
|
|
20
|
-
await uiManagedWorkflows.list.waitForData();
|
|
21
|
-
await uiShell.waitForPageTransition(
|
|
22
|
-
uiManagedWorkflows.pageHeader.actions.getActionByLabel('New').click(),
|
|
23
|
-
);
|
|
24
|
-
await uiManagedWorkflows.form
|
|
25
|
-
.getFieldByLabel('Title')
|
|
26
|
-
.asSingleLineTextField()
|
|
27
|
-
.setValue(args.channelTitle);
|
|
28
|
-
await uiShell.waitForPageTransition(
|
|
29
|
-
uiManagedWorkflows.actions.getActionByLabel('Proceed').click(),
|
|
30
|
-
);
|
|
31
|
-
await uiManagedWorkflows.form.waitForData();
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* This method opens channel properties page for a channel.
|
|
36
|
-
* The management system must be loaded & signed in before using this method.
|
|
37
|
-
*
|
|
38
|
-
* The following steps will be taken:
|
|
39
|
-
* - Navigate to the channels station
|
|
40
|
-
* - Filter out for the particular channel by title
|
|
41
|
-
* - Open channel properties page
|
|
42
|
-
*
|
|
43
|
-
* @param args.channelTitle The title of the channel
|
|
44
|
-
*/
|
|
45
|
-
async navigateToChannelProperties(args: {
|
|
46
|
-
channelTitle: string;
|
|
47
|
-
}): Promise<void> {
|
|
48
|
-
const { uiShell, uiManagedWorkflows } = this;
|
|
49
|
-
|
|
50
|
-
// filter out newly created channel
|
|
51
|
-
await uiShell.goToNavigationPanelItemByTestIds('channels');
|
|
52
|
-
await uiManagedWorkflows.list.waitForData();
|
|
53
|
-
await uiManagedWorkflows.filters
|
|
54
|
-
.getFilterByName('title')
|
|
55
|
-
.asFreeTextFilter()
|
|
56
|
-
.setValue(args.channelTitle);
|
|
57
|
-
await uiManagedWorkflows.list.waitForData();
|
|
58
|
-
|
|
59
|
-
// navigate to the channel properties station
|
|
60
|
-
await uiShell.waitForPageTransition(
|
|
61
|
-
uiManagedWorkflows.list.getRow(1).actionButton.click(),
|
|
62
|
-
);
|
|
63
|
-
await uiManagedWorkflows.form.waitForData();
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
/**
|
|
67
|
-
* This method publishes a channel.
|
|
68
|
-
* The management system must be loaded & signed in before using this method.
|
|
69
|
-
*
|
|
70
|
-
* The following steps will be taken:
|
|
71
|
-
* - Navigate to the channels station
|
|
72
|
-
* - Filter out for the particular channel by title
|
|
73
|
-
* - Open channel properties page
|
|
74
|
-
* - Publish the channel
|
|
75
|
-
*
|
|
76
|
-
* @param args.channelTitle The title of the channel
|
|
77
|
-
*/
|
|
78
|
-
async publishChannel(args: { channelTitle: string }): Promise<void> {
|
|
79
|
-
const { uiShell, uiManagedWorkflows } = this;
|
|
80
|
-
|
|
81
|
-
this.navigateToChannelProperties({
|
|
82
|
-
channelTitle: args.channelTitle,
|
|
83
|
-
});
|
|
84
|
-
|
|
85
|
-
// click on [Publishing] button
|
|
86
|
-
await uiManagedWorkflows.form.waitForData();
|
|
87
|
-
await uiShell.waitForPageTransition(
|
|
88
|
-
uiManagedWorkflows.actions.getActionByLabel('Publishing').click(),
|
|
89
|
-
);
|
|
90
|
-
// publish the channel
|
|
91
|
-
await uiManagedWorkflows.actions.getActionByLabel('Publish').click(),
|
|
92
|
-
await uiShell.waitForPageTransition(
|
|
93
|
-
uiManagedWorkflows.actions.confirmButton.click(),
|
|
94
|
-
);
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
/**
|
|
98
|
-
* This method unpublishes a channel.
|
|
99
|
-
* The management system must be loaded & signed in before using this method.
|
|
100
|
-
*
|
|
101
|
-
* The following steps will be taken:
|
|
102
|
-
* - Navigate to the channels station
|
|
103
|
-
* - Filter out for the particular channel by title
|
|
104
|
-
* - Open channel properties page
|
|
105
|
-
* - Unpublish the channel
|
|
106
|
-
*
|
|
107
|
-
* @param args.channelTitle The title of the channel
|
|
108
|
-
*/
|
|
109
|
-
async unpublishChannel(args: { channelTitle: string }): Promise<void> {
|
|
110
|
-
const { uiShell, uiManagedWorkflows } = this;
|
|
111
|
-
|
|
112
|
-
this.navigateToChannelProperties({
|
|
113
|
-
channelTitle: args.channelTitle,
|
|
114
|
-
});
|
|
115
|
-
|
|
116
|
-
await uiManagedWorkflows.actions.getActionByLabel('Unpublish').click(),
|
|
117
|
-
await uiShell.waitForPageTransition(
|
|
118
|
-
uiManagedWorkflows.actions.confirmButton.click(),
|
|
119
|
-
);
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
/**
|
|
123
|
-
* This method deletes a channel.
|
|
124
|
-
* The management system must be loaded & signed in before using this method.
|
|
125
|
-
*
|
|
126
|
-
* The following steps will be taken:
|
|
127
|
-
* - Navigate to the channels station
|
|
128
|
-
* - Filter out for the particular channel by title
|
|
129
|
-
* - Open channel properties page
|
|
130
|
-
* - Delete the channel
|
|
131
|
-
*
|
|
132
|
-
* @param args.channelTitle The title of the channel
|
|
133
|
-
*/
|
|
134
|
-
async deleteChannel(args: { channelTitle: string }): Promise<void> {
|
|
135
|
-
const { uiShell, uiManagedWorkflows } = this;
|
|
136
|
-
|
|
137
|
-
this.navigateToChannelProperties({
|
|
138
|
-
channelTitle: args.channelTitle,
|
|
139
|
-
});
|
|
140
|
-
|
|
141
|
-
const action = uiManagedWorkflows.actions.getActionByLabel('Delete');
|
|
142
|
-
try {
|
|
143
|
-
await action.waitFor({ state: 'visible' });
|
|
144
|
-
} catch {
|
|
145
|
-
throw new Error(`The "Delete" action is not visible.`);
|
|
146
|
-
}
|
|
147
|
-
await action.click();
|
|
148
|
-
await uiShell.waitForPageTransition(
|
|
149
|
-
uiManagedWorkflows.actions.confirmButton.click(),
|
|
150
|
-
);
|
|
151
|
-
await uiManagedWorkflows.list.waitForData();
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
/**
|
|
155
|
-
* This method creates a playlist for a channel.
|
|
156
|
-
* The management system must be loaded & signed in before using this method.
|
|
157
|
-
*
|
|
158
|
-
* The following steps will be taken:
|
|
159
|
-
* - Navigate to the channels station
|
|
160
|
-
* - Filter out for the particular channel by title
|
|
161
|
-
* - Open channel properties page
|
|
162
|
-
* - Click on [Playlists] button
|
|
163
|
-
* - Click on [New] button on the Playlists station
|
|
164
|
-
* - Populate Scheduled Start date and proceed in order to save newly created playlist
|
|
165
|
-
*
|
|
166
|
-
* @param args.channelTitle The title of the channel
|
|
167
|
-
* @param args.scheduledStart The start date/time of the playlist
|
|
168
|
-
*/
|
|
169
|
-
async createPlaylist(args: {
|
|
170
|
-
channelTitle: string;
|
|
171
|
-
scheduledStart: string;
|
|
172
|
-
}): Promise<void> {
|
|
173
|
-
const { uiShell, uiManagedWorkflows } = this;
|
|
174
|
-
|
|
175
|
-
this.navigateToChannelProperties({
|
|
176
|
-
channelTitle: args.channelTitle,
|
|
177
|
-
});
|
|
178
|
-
await uiShell.waitForPageTransition(
|
|
179
|
-
uiManagedWorkflows.actions.getActionByLabel('Playlists').click(),
|
|
180
|
-
);
|
|
181
|
-
|
|
182
|
-
// create playlist
|
|
183
|
-
await uiShell.waitForPageTransition(
|
|
184
|
-
uiManagedWorkflows.pageHeader.actions.getActionByLabel('New').click(),
|
|
185
|
-
);
|
|
186
|
-
await uiManagedWorkflows.form
|
|
187
|
-
.getFieldByLabel('Scheduled Start')
|
|
188
|
-
.asDateTimeField()
|
|
189
|
-
.setValue(args.scheduledStart);
|
|
190
|
-
await uiShell.waitForPageTransition(
|
|
191
|
-
uiManagedWorkflows.actions.getActionByLabel('Proceed').click(),
|
|
192
|
-
);
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
/**
|
|
196
|
-
* This method publishes a playlist.
|
|
197
|
-
* The management system must be loaded & signed in before using this method.
|
|
198
|
-
*
|
|
199
|
-
* The following steps will be taken:
|
|
200
|
-
* - Navigate to the channels station
|
|
201
|
-
* - Filter out for the particular channel by title
|
|
202
|
-
* - Open channel properties page
|
|
203
|
-
* - Click on [Playlists] button
|
|
204
|
-
* - Click on first playlist found
|
|
205
|
-
* - Publish the playlist
|
|
206
|
-
*
|
|
207
|
-
* @param args.channelTitle The title of the channel
|
|
208
|
-
*/
|
|
209
|
-
async publishPlaylist(args: { channelTitle: string }): Promise<void> {
|
|
210
|
-
const { uiShell, uiManagedWorkflows } = this;
|
|
211
|
-
|
|
212
|
-
this.navigateToChannelProperties({
|
|
213
|
-
channelTitle: args.channelTitle,
|
|
214
|
-
});
|
|
215
|
-
|
|
216
|
-
// publish playlist
|
|
217
|
-
await uiShell.waitForPageTransition(
|
|
218
|
-
uiManagedWorkflows.actions.getActionByLabel('Playlists').click(),
|
|
219
|
-
);
|
|
220
|
-
await uiShell.waitForPageTransition(
|
|
221
|
-
uiManagedWorkflows.list.getRow(1).actionButton.click(),
|
|
222
|
-
);
|
|
223
|
-
await uiShell.waitForPageTransition(
|
|
224
|
-
uiManagedWorkflows.actions.getActionByLabel('Publishing').click(),
|
|
225
|
-
);
|
|
226
|
-
await uiManagedWorkflows.actions.getActionByLabel('Publish').click(),
|
|
227
|
-
await uiShell.waitForPageTransition(
|
|
228
|
-
uiManagedWorkflows.actions.confirmButton.click(),
|
|
229
|
-
);
|
|
230
|
-
}
|
|
231
|
-
}
|