@digital-ai/devops-page-object-release 0.0.11 → 0.0.13

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/types.d.ts CHANGED
@@ -1,139 +1,13 @@
1
1
  import { Page, Locator, APIResponse } from "@playwright/test";
2
2
  import { APIRequestContext } from "playwright-core";
3
- interface BaseConfigurationItem {
4
- id: string;
5
- type: string;
6
- }
7
- interface PlanItem extends BaseConfigurationItem {
8
- title: string;
9
- }
10
- interface Release extends PlanItem {
11
- allowConcurrentReleasesFromTrigger: boolean;
12
- attachments: Array<Attachment>;
13
- description: string;
14
- dueDate?: Date;
15
- endDate?: Date;
16
- extensions: Array<ReleaseExtension>;
17
- owner?: string;
18
- passwordVariableValues?: VariableValues;
19
- phases: Array<Phase>;
20
- queryableEndDate?: Date;
21
- queryableStartDate?: Date;
22
- scheduledStartDate?: Date;
23
- scriptUserPassword?: string;
24
- scriptUsername?: string;
25
- startDate?: Date;
26
- status: ReleaseStatus;
27
- summary?: Dashboard;
28
- teams: Array<Team>;
29
- variableValues?: VariableValues;
30
- variables: Array<Variable>;
31
- }
32
- interface VariableValues {
33
- [key: string]: any;
34
- }
35
- interface Variable extends BaseConfigurationItem {
36
- key: string;
37
- requiresValue: boolean;
38
- showOnReleaseStart: boolean;
39
- value: any;
40
- valueProvider?: VariableValueProvider;
41
- }
42
- interface VariableValueProvider {
43
- id: string;
44
- variable: string;
45
- }
46
- interface Container extends PlanItem {
47
- tasks: Array<Task>;
48
- }
49
- interface Phase extends Container {
50
- status: PhaseStatus;
51
- }
52
- interface Task extends PlanItem {
53
- attachments: Array<Attachment>;
54
- comments: Array<Comment>;
55
- conditions: Array<Condition>;
56
- dependencies: Array<Dependency>;
57
- links: Array<Link>;
58
- owner?: string;
59
- precondition: string;
60
- pythonScript?: PythonScript;
61
- script: string;
62
- status: TaskStatus;
63
- tasks: Array<Task>;
64
- templateVariables: Array<Variable>;
65
- }
66
- type Condition = PlanItem;
67
- type Dependency = PlanItem;
68
- type Link = PlanItem;
69
- type Comment = PlanItem;
70
- type Attachment = PlanItem;
71
- interface Dashboard extends ReleaseExtension {
72
- tiles: Array<Tile>;
73
- }
74
- type ReleaseExtension = BaseConfigurationItem;
75
- type Tile = BaseConfigurationItem;
76
- interface PythonScript extends BaseConfigurationItem {
77
- customScriptTask: string;
78
- }
79
- type ReleaseStatus = 'TEMPLATE' | 'PLANNED' | 'IN_PROGRESS' | 'PAUSED' | 'FAILING' | 'FAILED' | 'COMPLETED' | 'ABORTED';
80
- type PhaseStatus = 'PLANNED' | 'IN_PROGRESS' | 'COMPLETED' | 'FAILING' | 'FAILED' | 'SKIPPED' | 'ABORTED';
81
- type TaskStatus = 'IN_PROGRESS' | 'PLANNED' | 'SKIPPED_IN_ADVANCE' | 'COMPLETED_IN_ADVANCE' | 'COMPLETED' | 'SKIPPED' | 'ABORTED' | 'PENDING' | 'FACET_CHECK_IN_PROGRESS' | 'FAILED' | 'FAILING' | 'FAILURE_HANDLER_IN_PROGRESS' | 'ABORT_SCRIPT_IN_PROGRESS' | 'PRECONDITION_IN_PROGRESS' | 'QUEUED' | 'ABORT_SCRIPT_QUEUED' | 'WAITING_FOR_INPUT' | 'FAILURE_HANDLER_QUEUED';
82
- type Team = BaseConfigurationItem;
83
- type FeatureCategory = 'Stable' | 'Incubating';
84
- type FeatureType = 'xlrelease.TaskDrawer';
85
- interface FixtureFeature {
86
- category: FeatureCategory;
87
- enabled: boolean;
88
- id: string;
89
- type: FeatureType;
90
- }
91
- type DeepPartial<T> = {
92
- [P in keyof T]?: DeepPartial<T[P]>;
93
- };
94
- type FixtureRelease = DeepPartial<Release> & Pick<Release, 'id'>;
95
- interface FixtureConfiguration extends PlanItem {
96
- apiToken?: string;
97
- password?: string;
98
- url: string;
99
- username?: string;
100
- }
101
- interface FixtureTrigger extends PlanItem {
102
- folderId?: string;
103
- gitRepository?: string;
104
- periodicity?: number | string;
105
- pollType?: string;
106
- releaseTitle: string;
107
- template: string;
108
- }
109
3
  declare class WithPage {
110
4
  protected readonly page: Page;
111
5
  constructor(page: Page);
112
6
  }
113
- declare class LoginPage extends WithPage {
114
- /**
115
- * Login with username and password
116
- * @param userName
117
- * @param password
118
- */
119
- login(userName: string, password: string): Promise<void>;
120
- /**
121
- * Logout as authenticated user
122
- */
123
- logout(): Promise<void>;
124
- /**
125
- * Expect login to be restricted for a user
126
- */
127
- expectLoginDisallowed(): Promise<void>;
128
- /**
129
- * Expect the respective user is logged In
130
- * @param username
131
- */
132
- expectToBeLogged(username: string): Promise<void>;
133
- }
134
7
  declare class ReleasesListPage extends WithPage {
135
8
  expectNumberOfReleases(releaseTitle: string, amount: number): Promise<void>;
136
9
  openReleaseByName(releaseTitle: string): Promise<ReleasePage>;
10
+ filterReleaseByTitle(releaseTitle: string): Promise<void>;
137
11
  }
138
12
  declare class TriggersPage extends WithPage {
139
13
  openRelatedReleasesOf(title: string): Promise<ReleasesListPage>;
@@ -172,8 +46,68 @@ declare class ConditionRail extends WithPage {
172
46
  disablePrecondition(): Promise<void>;
173
47
  setPrecondition(script: string): Promise<void>;
174
48
  }
49
+ declare class OverviewRail extends WithPage {
50
+ railLocator: Locator;
51
+ dependency: Dependency;
52
+ constructor(page: Page);
53
+ openInputProperties(): Promise<void>;
54
+ openOutputProperties(): Promise<void>;
55
+ getValueFromCi(propertyName: string): Promise<string>;
56
+ getAllOptionsFromCi(propertyName: string): Promise<string[]>;
57
+ setValueFromCi(propertyName: string, value: string): Promise<void>;
58
+ getValueFromString(propertyName: string): Promise<string | null>;
59
+ setValueFromString(propertyName: string, value: string): Promise<void>;
60
+ setValueFromLargeString(propertyName: string, value: string): Promise<void>;
61
+ setValueFromPassword(propertyName: string, value: string): Promise<void>;
62
+ setAndCreateVariable(propertyName: string, variableName: string): Promise<void>;
63
+ setVariable(propertyName: string, variableName: string): Promise<void>;
64
+ expectValueFromString(propertyName: string, propertyValue: string): Promise<void>;
65
+ setValueFromMap(propertyName: string, key: string, value: string): Promise<void>;
66
+ setScript(script: string): Promise<void>;
67
+ expectScriptToContain(script: string): Promise<void>;
68
+ enterScriptForAutoComplete(script: string): Promise<void>;
69
+ openScriptEditorInSeparateWindow(): Promise<void>;
70
+ closeFullscreenScriptWindowWithESC(): Promise<void>;
71
+ closeFullscreenScriptWindow(): Promise<void>;
72
+ abort(comment: string): Promise<void>;
73
+ expectDependenciesDisplayed(dependencies: any[]): Promise<void>;
74
+ expectCanDeleteDependency(title: string, canDelete?: boolean): Promise<void>;
75
+ getDependencyCount(): Promise<number>;
76
+ addDependency(): Promise<void>;
77
+ expectDependencyText(dependencies: string): Promise<void>;
78
+ clickEditDependency(dependencies: string): Promise<void>;
79
+ }
80
+ declare class Dependency extends WithPage {
81
+ constructor(page: Page);
82
+ getRelease(): Promise<any>;
83
+ getPhase(): Promise<any>;
84
+ getTask(): Promise<any>;
85
+ setRelease(releaseTitle: string): Promise<void>;
86
+ save(): Promise<void>;
87
+ setPhase(phaseTitle: string): Promise<void>;
88
+ setTask(taskTitle: string): Promise<void>;
89
+ clearPhase(): Promise<void>;
90
+ expectVariableModeEnabled(mode: boolean): Promise<void>;
91
+ clickVariable(): Promise<void>;
92
+ expectMinimumOptions(options: any[]): Promise<void>;
93
+ enterNewVariable(variablename: string): Promise<void>;
94
+ selectVariable(variablename: string): Promise<void>;
95
+ }
96
+ declare class ActivityRail extends WithPage {
97
+ expectCommentToContain(text: string): Promise<void>;
98
+ }
99
+ declare class AttachmentRail extends WithPage {
100
+ expectWithAttachment(filename: string): Promise<void>;
101
+ getAttachmentsListCount(): Promise<number>;
102
+ uploadFile(filePath: string): Promise<void>;
103
+ downloadFile(filename: string): Promise<void>;
104
+ deleteAttachment(fileName: string): Promise<void>;
105
+ expectWithNoAttachment(tempFile: string): Promise<void>;
106
+ }
175
107
  type Rail = 'Overview' | 'Activity' | 'Config' | 'Scheduling' | 'Conditions' | 'Attributes' | 'Attach' | 'Tags';
176
108
  declare class TaskDrawer extends WithPage {
109
+ activity: ActivityRail;
110
+ attachment: AttachmentRail;
177
111
  config: ConfigRail;
178
112
  condition: ConditionRail;
179
113
  taskDrawerLocator: Locator;
@@ -181,6 +115,7 @@ declare class TaskDrawer extends WithPage {
181
115
  cancelButton: Locator;
182
116
  commentBox: Locator;
183
117
  confirm: Locator;
118
+ overview: OverviewRail;
184
119
  skipMenu: Locator;
185
120
  constructor(page: Page);
186
121
  openOverviewRail(): Promise<void>;
@@ -194,14 +129,27 @@ declare class TaskDrawer extends WithPage {
194
129
  close(): Promise<void>;
195
130
  retryTask(comment: string): Promise<void>;
196
131
  skipTask(comment: string): Promise<void>;
132
+ expectTaskTitle(taskTitle: string): Promise<void>;
133
+ }
134
+ declare class ReleasePropertiesPage extends WithPage {
135
+ constructor(page: Page);
136
+ editReleaseName(name: string): Promise<void>;
137
+ setDescription(description: string): Promise<void>;
138
+ setScriptUsername(username: string): Promise<void>;
139
+ setScriptUserPassword(password: string): Promise<void>;
140
+ save(): Promise<void>;
141
+ reset(): Promise<void>;
197
142
  }
198
143
  declare class ReleasePage extends WithPage {
199
144
  taskDrawer: TaskDrawer;
145
+ properties: ReleasePropertiesPage;
146
+ variables: ReleaseVariablesPage;
200
147
  constructor(page: Page);
201
148
  openTriggers(): Promise<TriggersPage>;
202
149
  abort(comment?: string): Promise<void>;
203
- getPhase(phaseName: string): _Phase1;
150
+ getPhase(phaseName: string): Phase;
204
151
  start(): Promise<void>;
152
+ waitForCompletion(timeout: number): Promise<void>;
205
153
  waitForTaskCompleted(taskTitle: string): Promise<void>;
206
154
  waitForTaskFailed(taskTitle: string): Promise<void>;
207
155
  waitForTaskSkipped(taskTitle: string): Promise<void>;
@@ -209,15 +157,26 @@ declare class ReleasePage extends WithPage {
209
157
  waitForStatusLine(statusLine: string): Promise<void>;
210
158
  waitForTaskStarted(taskTitle: string): Promise<void>;
211
159
  openTaskDrawer(taskName: string): Promise<TaskDrawer>;
212
- openVariables(): Promise<ReleaseVariablesPage>;
213
- openReleaseMenu(menuItem: string): Promise<void>;
160
+ openVariables(): Promise<void>;
161
+ openProperties(): Promise<void>;
162
+ openReleaseFlow(): Promise<void>;
163
+ openRelationships(): Promise<void>;
164
+ openTeamsPermissions(): Promise<void>;
165
+ openDashboard(): Promise<void>;
166
+ openActivityLogs(): Promise<void>;
214
167
  openTask(taskName: string): Promise<void>;
215
168
  collapseAllTaskView(): Promise<void>;
216
169
  expandAllTaskView(): Promise<void>;
170
+ backToRelease(): Promise<void>;
217
171
  }
218
- declare class _Phase1 extends WithPage {
172
+ declare class Phase extends WithPage {
219
173
  constructor(page: Page, phaseName: string);
220
- addTask(taskName: string, taskGroup: string, taskType: string): Promise<void>;
174
+ setTitle(title: string): Promise<void>;
175
+ expectTaskBorderWithColor(taskName: string, color: string): Promise<void>;
176
+ addTaskInPhase(taskTitle: string, taskType: any): Promise<void>;
177
+ getNumberOfTasks(): Promise<number>;
178
+ expectToHaveNoneditableTitle(phaseTitle: string): Promise<void>;
179
+ expectToHaveTitle(phaseTitle: string): Promise<void>;
221
180
  }
222
181
  declare class ApplicationsPage extends WithPage {
223
182
  goToApplicationsPage(): Promise<this>;
@@ -277,6 +236,17 @@ declare class ReleaseCalendarPage extends WithPage {
277
236
  cancelCalendarExport(): Promise<number>;
278
237
  verifyDayView(): Promise<void>;
279
238
  verifyYearView(): Promise<void>;
239
+ verifyMonthView(): Promise<void>;
240
+ verifyPageContent(title: string): Promise<void>;
241
+ filterReleaseByTitle(title: string): Promise<void>;
242
+ filterReleaseByTags(tags: string[], release_title: string): Promise<void>;
243
+ filterTaskByTags(tags: string[], task_title: string, release_title: string): Promise<void>;
244
+ filterReleaseByStatus(release_status: string, release_title: string): Promise<void>;
245
+ filterReleaseByRisk(release_risk: string, release_title: string): Promise<void>;
246
+ filterFlaggedRelease(release_title: string): Promise<void>;
247
+ viewRelease(release_title: string, release_id: string): Promise<void>;
248
+ viewDependency(source_release: string, dest_release: string): Promise<void>;
249
+ downloadIcsCalendar(release_title: string): Promise<number>;
280
250
  }
281
251
  declare class Navigation {
282
252
  releasePage: ReleasePage;
@@ -285,6 +255,7 @@ declare class Navigation {
285
255
  applicationPage: ApplicationsPage;
286
256
  taskDetailsPage: TaskDetails;
287
257
  releaseCalendarPage: ReleaseCalendarPage;
258
+ releaseListPage: ReleasesListPage;
288
259
  constructor(page: Page);
289
260
  openTemplate(id: string): Promise<ReleasePage>;
290
261
  openRelease(id: string): Promise<ReleasePage>;
@@ -307,6 +278,148 @@ declare class Navigation {
307
278
  gotoGobalVariablesPage(): Promise<void>;
308
279
  gotoConnectionsPage(): Promise<void>;
309
280
  }
281
+ declare class LoginPage extends WithPage {
282
+ /**
283
+ * Login with username and password
284
+ * @param userName
285
+ * @param password
286
+ */
287
+ login(userName: string, password: string): Promise<void>;
288
+ /**
289
+ * Logout as authenticated user
290
+ */
291
+ logout(): Promise<void>;
292
+ /**
293
+ * Expect login to be restricted for a user
294
+ */
295
+ expectLoginDisallowed(): Promise<void>;
296
+ /**
297
+ * Expect the respective user is logged In
298
+ * @param username
299
+ */
300
+ expectToBeLogged(username: string): Promise<void>;
301
+ }
302
+ interface BaseConfigurationItem {
303
+ id: string;
304
+ type: string;
305
+ }
306
+ interface PlanItem extends BaseConfigurationItem {
307
+ title: string;
308
+ }
309
+ interface Release extends PlanItem {
310
+ allowConcurrentReleasesFromTrigger: boolean;
311
+ attachments: Array<Attachment>;
312
+ description: string;
313
+ dueDate?: Date;
314
+ endDate?: Date;
315
+ extensions: Array<ReleaseExtension>;
316
+ flagStatus?: string;
317
+ owner?: string;
318
+ passwordVariableValues?: VariableValues;
319
+ phases: Array<_Phase1>;
320
+ queryableEndDate?: Date;
321
+ queryableStartDate?: Date;
322
+ scheduledStartDate?: Date;
323
+ scriptUserPassword?: string;
324
+ scriptUsername?: string;
325
+ startDate?: Date;
326
+ status: ReleaseStatus;
327
+ summary?: Dashboard;
328
+ tags?: Array<string>;
329
+ teams: Array<Team>;
330
+ variableValues?: VariableValues;
331
+ variables: Array<Variable>;
332
+ }
333
+ type VariableValues = Record<string, any>;
334
+ interface Variable extends BaseConfigurationItem {
335
+ key: string;
336
+ requiresValue: boolean;
337
+ showOnReleaseStart: boolean;
338
+ value: string;
339
+ valueProvider?: VariableValueProvider;
340
+ }
341
+ interface VariableValueProvider {
342
+ id: string;
343
+ variable: string;
344
+ }
345
+ interface Container extends PlanItem {
346
+ tasks: Array<Task>;
347
+ }
348
+ interface _Phase1 extends Container {
349
+ status: PhaseStatus;
350
+ }
351
+ interface _Dependency1 extends PlanItem {
352
+ archivedAsResolved: boolean;
353
+ archivedTargetId: string;
354
+ archivedTargetTitle: string;
355
+ target: {
356
+ id: string;
357
+ type: string;
358
+ };
359
+ targetId: string;
360
+ }
361
+ interface Folder extends PlanItem {
362
+ children?: Array<Folder>;
363
+ teams?: Array<Team>;
364
+ }
365
+ interface Task extends PlanItem {
366
+ attachments: Array<Attachment>;
367
+ comments: Array<Comment>;
368
+ conditions: Array<Condition>;
369
+ dependencies: Array<_Dependency1>;
370
+ description?: string;
371
+ links: Array<Link>;
372
+ owner?: string;
373
+ precondition: string;
374
+ pythonScript?: PythonScript;
375
+ script: string;
376
+ status: TaskStatus;
377
+ tags?: Array<string>;
378
+ tasks: Array<Task>;
379
+ templateVariables: Array<Variable>;
380
+ }
381
+ type Condition = PlanItem;
382
+ type Link = PlanItem;
383
+ type Comment = PlanItem;
384
+ type Attachment = PlanItem;
385
+ interface Dashboard extends ReleaseExtension {
386
+ tiles: Array<Tile>;
387
+ }
388
+ type ReleaseExtension = BaseConfigurationItem;
389
+ type Tile = BaseConfigurationItem;
390
+ interface PythonScript extends BaseConfigurationItem {
391
+ customScriptTask: string;
392
+ }
393
+ type ReleaseStatus = 'TEMPLATE' | 'PLANNED' | 'IN_PROGRESS' | 'PAUSED' | 'FAILING' | 'FAILED' | 'COMPLETED' | 'ABORTED';
394
+ type PhaseStatus = 'PLANNED' | 'IN_PROGRESS' | 'COMPLETED' | 'FAILING' | 'FAILED' | 'SKIPPED' | 'ABORTED';
395
+ type TaskStatus = 'IN_PROGRESS' | 'PLANNED' | 'SKIPPED_IN_ADVANCE' | 'COMPLETED_IN_ADVANCE' | 'COMPLETED' | 'SKIPPED' | 'ABORTED' | 'PENDING' | 'FACET_CHECK_IN_PROGRESS' | 'FAILED' | 'FAILING' | 'FAILURE_HANDLER_IN_PROGRESS' | 'ABORT_SCRIPT_IN_PROGRESS' | 'PRECONDITION_IN_PROGRESS' | 'QUEUED' | 'ABORT_SCRIPT_QUEUED' | 'WAITING_FOR_INPUT' | 'FAILURE_HANDLER_QUEUED';
396
+ interface Team extends PlanItem {
397
+ members: Array<string>;
398
+ permissions: Array<string>;
399
+ teamName: string;
400
+ }
401
+ type FeatureType = 'xlrelease.TaskDrawer';
402
+ interface FixtureFeature {
403
+ enabled: boolean;
404
+ id: string;
405
+ type: FeatureType;
406
+ }
407
+ type DeepPartial<T> = {
408
+ [P in keyof T]?: DeepPartial<T[P]>;
409
+ };
410
+ type FixtureRelease = DeepPartial<Release> & Pick<Release, 'id'>;
411
+ interface FixtureConfiguration extends PlanItem {
412
+ apiToken?: string;
413
+ password?: string;
414
+ url: string;
415
+ username?: string;
416
+ }
417
+ interface FixtureActivityLog extends PlanItem {
418
+ activityType: string;
419
+ eventTime: Date;
420
+ message: string;
421
+ username: string;
422
+ }
310
423
  type ReleaseFixtures = {
311
424
  fixtures: Fixtures;
312
425
  loginPage: LoginPage;
@@ -316,24 +429,34 @@ export const test: import("@playwright/test").TestType<import("@playwright/test"
316
429
  declare class Fixtures {
317
430
  constructor(request: APIRequestContext, page: Page);
318
431
  release(release: FixtureRelease): Promise<APIResponse>;
432
+ archivedRelease(release: FixtureRelease): Promise<APIResponse>;
319
433
  configuration(ci: FixtureConfiguration): Promise<APIResponse>;
320
- trigger(trigger: FixtureTrigger): Promise<APIResponse>;
434
+ getParentId(id: string): string;
435
+ folder(folder: Folder): Promise<APIResponse>;
321
436
  deleteArchivedRelease(id: string): Promise<APIResponse>;
322
437
  deleteRelease(id: string): Promise<APIResponse>;
438
+ deleteUser(username: string): Promise<APIResponse>;
439
+ deleteUserProfile(userProfile: string): Promise<APIResponse>;
323
440
  deleteTrigger(id: string): Promise<APIResponse>;
324
441
  deleteConfiguration(id: string): Promise<APIResponse>;
325
- cleanAll(): Promise<Awaited<APIResponse>[]>;
442
+ deleteFolder(folderId: string): Promise<APIResponse>;
443
+ activityLogs(id: string, logs: Array<FixtureActivityLog>): Promise<APIResponse>;
444
+ globalVariable(variable: Variable): Promise<APIResponse>;
445
+ cleanAll(): Promise<void>;
446
+ addJiraTask(): Promise<string>;
447
+ addUser(username: string, password: string): Promise<void>;
448
+ addUserProfile(username: string, profile?: any): Promise<void>;
449
+ expectJiraTaskStatus(taskId: string, expectedStatus: string): Promise<void>;
450
+ expectJiraTaskSummary(taskId: string, expectedSummary: string): Promise<void>;
326
451
  waitForReleaseStarted(releaseTitle: string): Promise<void>;
327
452
  waitForFirstPoll(triggerId: string): Promise<void>;
328
453
  exec(path: string): Promise<void>;
329
454
  getFakeApiUrl(): string;
330
455
  getEnvVariable(name: string): string | undefined;
456
+ archiveRelease(releaseId: string): Promise<APIResponse>;
457
+ preArchiveRelease(releaseId: string): Promise<APIResponse>;
331
458
  setFeatures(features: Array<FixtureFeature>): Promise<APIResponse>;
332
459
  enableTaskDrawer(enabled: boolean): Promise<APIResponse>;
333
- addUser(username: string, password: string): Promise<APIResponse>;
334
- addUserProfile(username: string, profile: any): Promise<APIResponse>;
335
- deleteUser(username: string): Promise<APIResponse>;
336
- deleteUserProfile(username: string): Promise<APIResponse>;
337
460
  }
338
461
 
339
462
  //# sourceMappingURL=types.d.ts.map