@nsshunt/stsappframework 3.1.164 → 3.1.167

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.
@@ -36,7 +36,9 @@ export enum eIWMessageCommands {
36
36
  ResumeRunner = '__STS__ResumeRunner',
37
37
  ResetRunner = '__STS__ResetRunner',
38
38
  ExecuteRunner = '__STS__ExecuteRunner',
39
- Completed = '__STS__Completed'
39
+ Completed = '__STS__Completed',
40
+ UpdateOptions = '__STS__UpdateOptions',
41
+ TerminateRunner = '__STS__TerminateRunner'
40
42
  }
41
43
 
42
44
  /**
@@ -103,18 +105,27 @@ export interface IRunner {
103
105
 
104
106
  export interface IRunnerEx extends IRunner {
105
107
  publishInstrumentController: PublishInstrumentController
106
- Start: () => Promise<boolean>
107
- Pause: () => Promise<boolean>
108
- Resume: () => Promise<boolean>
109
- Stop: () => Promise<boolean>
110
- Terminate: () => Promise<boolean>
111
- Reset: () => Promise<boolean>
112
- Execute: (iteration: number) => Promise<boolean> // Execute a single iteration for this test
113
- on: (eventName: string, cb: () => void) => IRunnerEx
108
+ Start: () => Promise<boolean> // Start runner iterations
109
+ Pause: () => Promise<boolean> // Pause iteration processing and keep the current iteration number.
110
+ Resume: () => Promise<boolean> // Resume iteration processing from the previously paused iteration number.
111
+ Stop: () => Promise<boolean> // Stop iteration processing and keep the current iteration number. Currently, this is the same as Pause.
112
+ Terminate: () => Promise<boolean> // Stop the runner iterations and terminate the instance, stop any instrument publishers.
113
+ Reset: () => Promise<boolean> // Stop the current iterations and reset the iteration count back to 0.
114
+ Execute: (iteration: number) => Promise<boolean> // Execute a single iteration for this test.
115
+ UpdateOptions: (options: IRunnerOptions) => Promise<boolean>
116
+ on: (eventName: string, cb: () => void) => IRunnerEx // Register event handler.
114
117
  }
115
118
 
116
119
  export interface IRunnerInstance {
117
120
  Execute: (iteration: number) => Promise<boolean> // Execute a single iteration for this test
121
+ StartRunner: () => Promise<boolean>
122
+ StopRunner: () => Promise<boolean>
123
+ TerminateRunner: () => Promise<boolean>
124
+ Completed: () => Promise<boolean>
125
+ PauseRunner: () => Promise<boolean>
126
+ ResumeRunner: () => Promise<boolean>
127
+ ResetRunner: () => Promise<boolean>
128
+ UpdateOptions: () => Promise<boolean>
118
129
  }
119
130
 
120
131
  export enum IWorkerState {
@@ -125,6 +136,7 @@ export enum IWorkerState {
125
136
 
126
137
 
127
138
  export interface IWorkerOptions {
139
+ id: string
128
140
  hostName: string
129
141
  agentId: string
130
142
  userAgent: string
@@ -135,17 +147,12 @@ export type Runners = Record<string, IRunner>
135
147
  export interface IWorker {
136
148
  id: number
137
149
  state: IWorkerState
138
- primaryThreadWorkerOptions: IWorkerOptions
139
150
  workerThreadWorkerOptions: IWorkerOptions
140
151
  runners?: Runners // Will be created by utility helper
141
152
  }
142
153
 
143
154
  export type Workers = Record<string, IWorker>
144
155
 
145
- export interface IPrimaryWorker {
146
- ProcessMessageFromWorker(workerPort: MessagePort, publishMessagePayload: IIWMessagePayload): Promise<void>
147
- }
148
-
149
156
  export interface IExecutionProfile {
150
157
  iterations: number
151
158
  delayBetweenIterations: number
@@ -163,7 +170,6 @@ export interface IRunnerEvent {
163
170
 
164
171
  export interface IWorkerEx extends IWorker {
165
172
  worker: Worker
166
- primaryWorker: IPrimaryWorker
167
173
  runnersEx: Record<string, IRunnerEx>
168
174
  runnersEvents: Record<string, IRunnerEvent[]>
169
175
  GetRunner(id: string): IRunnerEx | null
@@ -189,11 +195,8 @@ export interface ITestRunnerTelemetryPayload extends IIWMessagePayloadContentBas
189
195
  }
190
196
 
191
197
  export interface IWorkerFactory {
192
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
193
- createPrimaryThreadWorker: (app: any, options: IWorkerOptions) => IPrimaryWorker
194
198
  createWorkerThreadWorker: () => Worker // | wt.Worker
195
199
  get workerThreadWorkerOptions(): IWorkerOptions // These options will be passed as a message to the thread worker once setup
196
- get primaryThreadWorkerOptions(): IWorkerOptions // These options will be passed as a message to the thread worker once setup
197
200
  }
198
201
 
199
202
  export interface IWorkerManagerOptions {
@@ -38,7 +38,7 @@ export class TestCase01 implements IRunnerInstance {
38
38
  }
39
39
  const logMessageData = this.#logMessageDataSet[runner.id];
40
40
 
41
- let message = `${' '.repeat(logMessageData.indent)}>> Hello World << ${iteration}`;
41
+ let message = `${' '.repeat(logMessageData.indent)} [${runner.id}] >> Hello World << ${iteration}`;
42
42
  const colorCode = runner.asyncRunnerContext.asyncRunnerId % 4;
43
43
  switch (colorCode) {
44
44
  case 0:
@@ -104,4 +104,52 @@ export class TestCase01 implements IRunnerInstance {
104
104
 
105
105
  return true;
106
106
  }
107
+
108
+ #OutputLogMessage(message: string) {
109
+ const messageOutput = chalk.grey(message);
110
+ console.log(messageOutput);
111
+ this.#runner.instrumentData.message.push(messageOutput);
112
+ this.#workerInstance.PostTelemetry(this.#runner);
113
+ this.#runner.instrumentData.message = [ ];
114
+ }
115
+
116
+ StartRunner = async (): Promise<boolean> => {
117
+ this.#OutputLogMessage(`StartRunner [${this.#runner.id}]`);
118
+ return true;
119
+ }
120
+
121
+ StopRunner = async (): Promise<boolean> => {
122
+ this.#OutputLogMessage(`StopRunner [${this.#runner.id}]`);
123
+ return true;
124
+ }
125
+
126
+ TerminateRunner = async (): Promise<boolean> => {
127
+ this.#OutputLogMessage(`TerminateRunner [${this.#runner.id}]`);
128
+ return true;
129
+ }
130
+
131
+ Completed = async (): Promise<boolean> => {
132
+ this.#OutputLogMessage(`Completed [${this.#runner.id}]`);
133
+ return true;
134
+ }
135
+
136
+ PauseRunner = async (): Promise<boolean> => {
137
+ this.#OutputLogMessage(`PauseRunner [${this.#runner.id}]`);
138
+ return true;
139
+ }
140
+
141
+ ResumeRunner = async (): Promise<boolean> => {
142
+ this.#OutputLogMessage(`ResumeRunner [${this.#runner.id}]`);
143
+ return true;
144
+ }
145
+
146
+ ResetRunner = async (): Promise<boolean> => {
147
+ this.#OutputLogMessage(`ResetRunner [${this.#runner.id}]`);
148
+ return true;
149
+ }
150
+
151
+ UpdateOptions = async (): Promise<boolean> => {
152
+ this.#OutputLogMessage(`UpdateOptions [${this.#runner.id}]`);
153
+ return true;
154
+ }
107
155
  }
@@ -2,7 +2,7 @@
2
2
  import { MessagePort } from 'worker_threads';
3
3
 
4
4
  import { IIWMessagePayload, eIWMessageCommands, IIWMessagePayloadContentBase, IRunnerInstance,
5
- ISTSAgentWorkerMessagePort, IRunner, ITestRunnerTelemetryPayload, IRunnerEx
5
+ ISTSAgentWorkerMessagePort, IRunner, ITestRunnerTelemetryPayload, IWorkerOptions
6
6
  } from './commonTypes'
7
7
 
8
8
  import { RequestResponseHelper } from './requestResponseHelper'
@@ -30,10 +30,14 @@ export abstract class WorkerInstance {
30
30
  #collectorCollectorPort: MessagePort | null = null;
31
31
  #requestResponseHelper: RequestResponseHelper | null = null;
32
32
  #runners: Record<string, IRunnerEx2RunState> = { };
33
- #options: IWorkerInstanceOptions | null = null;
33
+ #options: IWorkerOptions | null = null;
34
34
 
35
35
  #debug = (message: string) => {
36
- console.log(chalk.green(`pid: [${process.pid}] WorkerInstance::${message}`));
36
+ if (this.#options) {
37
+ console.log(chalk.green(`pid: [${process.pid}] ${(this.#options as IWorkerOptions).id} WorkerInstance::${message}`));
38
+ } else {
39
+ console.log(chalk.green(`pid: [${process.pid}] WorkerInstance::${message}`));
40
+ }
37
41
  }
38
42
 
39
43
  constructor() {
@@ -126,21 +130,28 @@ export abstract class WorkerInstance {
126
130
 
127
131
  //@@ re4set iteration count - need a reset
128
132
 
129
- #StartRunner = (testRunnerTelemetryPayload: ITestRunnerTelemetryPayload) => {
130
- this.#debug(`StartRunner`)
133
+ #StartRunner = async (testRunnerTelemetryPayload: ITestRunnerTelemetryPayload) => {
131
134
  const { runner } = testRunnerTelemetryPayload;
135
+ this.#debug(`${chalk.magenta(`runner: [${runner.id}]`)} StartRunner`)
132
136
  this.#runners[runner.id].terminate = false;
133
137
  this.#runners[runner.id].paused = false;
134
138
 
139
+ await this.#runners[runner.id].runnerInstance.StartRunner();
135
140
  const ExecuteLoop = async () => {
141
+ //console.log(`ExecuteLoop: [${runner.id}]`);
136
142
  if (this.#runners[runner.id].iteration < this.#runners[runner.id].runner.options.executionProfile.iterations) {
137
- await this.#runners[runner.id].runnerInstance.Execute(this.#runners[runner.id].iteration);
138
- this.#runners[runner.id].iteration++;
143
+ if (!this.#runners[runner.id].paused) {
144
+ await this.#runners[runner.id].runnerInstance.Execute(this.#runners[runner.id].iteration);
145
+ this.#runners[runner.id].iteration++;
146
+ }
139
147
  await Sleep(0); // Yield to the event loop to make sure we can process worker messages if any in the event loop queue
140
148
  if (!this.#runners[runner.id].terminate) {
141
149
  if (!this.#runners[runner.id].paused) {
142
150
  await Sleep(this.#runners[runner.id].runner.options.executionProfile.delayBetweenIterations);
143
151
  ExecuteLoop();
152
+ } else {
153
+ await Sleep(50);
154
+ ExecuteLoop();
144
155
  }
145
156
  }
146
157
  } else {
@@ -153,54 +164,84 @@ export abstract class WorkerInstance {
153
164
  }
154
165
  this.#collectorCollectorPort.postMessage(message);
155
166
  }
167
+ await this.#runners[runner.id].runnerInstance.Completed();
156
168
  }
157
169
  }
158
170
  ExecuteLoop();
159
171
  }
160
172
 
161
- #StopRunners = (testRunnerTelemetryPayload: ITestRunnerTelemetryPayload) => {
173
+ #StopRunners = async (testRunnerTelemetryPayload: ITestRunnerTelemetryPayload) => {
162
174
  this.#debug(`StopRunners`);
163
175
  for (const [, runner] of Object.entries(this.#runners)) {
176
+ this.#debug(`${chalk.magenta(`runner: [${runner.runner.id}]`)} StopRunners`)
164
177
  runner.terminate = true;
178
+ await runner.runnerInstance.StopRunner();
165
179
  }
180
+ await Sleep(0);
166
181
  }
167
182
 
168
- #StopRunner = (testRunnerTelemetryPayload: ITestRunnerTelemetryPayload) => {
169
- this.#debug(`StopRunner`)
183
+ #StopRunner = async (testRunnerTelemetryPayload: ITestRunnerTelemetryPayload) => {
170
184
  const { runner } = testRunnerTelemetryPayload;
185
+ this.#debug(`${chalk.magenta(`runner: [${runner.id}]`)} StopRunner`)
171
186
  this.#runners[runner.id].terminate = true;
187
+ await this.#runners[runner.id].runnerInstance.StopRunner();
188
+ await Sleep(0);
172
189
  }
173
190
 
174
- #PauseRunner = (testRunnerTelemetryPayload: ITestRunnerTelemetryPayload) => {
175
- this.#debug(`PauseRunner`)
191
+ #TerminateRunner = async (testRunnerTelemetryPayload: ITestRunnerTelemetryPayload) => {
176
192
  const { runner } = testRunnerTelemetryPayload;
193
+ this.#debug(`${chalk.magenta(`runner: [${runner.id}]`)} TerminateRunner`)
194
+ this.#runners[runner.id].terminate = true;
195
+ await this.#runners[runner.id].runnerInstance.TerminateRunner();
196
+ await Sleep(0);
197
+ }
198
+
199
+ #PauseRunner = async (testRunnerTelemetryPayload: ITestRunnerTelemetryPayload) => {
200
+ const { runner } = testRunnerTelemetryPayload;
201
+ this.#debug(`${chalk.magenta(`runner: [${runner.id}]`)} PauseRunner`)
177
202
  this.#runners[runner.id].paused = true;
203
+ await this.#runners[runner.id].runnerInstance.PauseRunner();
204
+ await Sleep(0);
178
205
  }
179
206
 
180
- #ResumeRunner = (testRunnerTelemetryPayload: ITestRunnerTelemetryPayload) => {
181
- this.#debug(`ResumeRunner`);
207
+ #ResumeRunner = async (testRunnerTelemetryPayload: ITestRunnerTelemetryPayload) => {
182
208
  const { runner } = testRunnerTelemetryPayload;
209
+ this.#debug(`${chalk.magenta(`runner: [${runner.id}]`)} ResumeRunner`)
183
210
  this.#runners[runner.id].paused = false;
184
- this.#StartRunner(testRunnerTelemetryPayload);
211
+ await this.#runners[runner.id].runnerInstance.ResumeRunner();
212
+ await Sleep(0);
185
213
  //@@ todo
186
214
  }
187
215
 
188
- #ResetRunner = (testRunnerTelemetryPayload: ITestRunnerTelemetryPayload) => {
189
- this.#debug(`ResetRunner`)
216
+ #ResetRunner = async (testRunnerTelemetryPayload: ITestRunnerTelemetryPayload) => {
190
217
  const { runner } = testRunnerTelemetryPayload;
218
+ this.#debug(`${chalk.magenta(`runner: [${runner.id}]`)} ResetRunner`)
191
219
  this.#runners[runner.id].terminate = true;
192
220
  this.#runners[runner.id].iteration = 0;
221
+ await this.#runners[runner.id].runnerInstance.ResetRunner();
222
+ await Sleep(0);
193
223
  }
194
224
 
195
225
  // Execute a single iteration of this runners work item
196
- #ExecuteRunner = (testRunnerTelemetryPayload: ITestRunnerTelemetryPayload) => {
197
- this.#debug(`ExecuteRunner`)
226
+ #ExecuteRunner = async (testRunnerTelemetryPayload: ITestRunnerTelemetryPayload) => {
198
227
  const { runner } = testRunnerTelemetryPayload;
228
+ this.#debug(`${chalk.magenta(`runner: [${runner.id}]`)} ExecuteRunner`)
199
229
  this.#runners[runner.id].runnerInstance.Execute(this.#runners[runner.id].iteration);
200
230
  this.#runners[runner.id].iteration++;
231
+ await Sleep(0);
201
232
  //@@ todo
202
233
  }
203
234
 
235
+ #UpdateOptions = async (testRunnerTelemetryPayload: ITestRunnerTelemetryPayload) => {
236
+ const { runner } = testRunnerTelemetryPayload;
237
+ this.#debug(`${chalk.magenta(`runner: [${runner.id}]`)} UpdateOptions`)
238
+ console.log(chalk.cyan(`before: [${JSON.stringify(this.#runners[runner.id].runner.options)}]`))
239
+ this.#runners[runner.id].runner.options = { ...runner.options };
240
+ console.log(chalk.cyan(`after: [${JSON.stringify(this.#runners[runner.id].runner.options)}]`))
241
+ await this.#runners[runner.id].runnerInstance.UpdateOptions();
242
+ await Sleep(0);
243
+ }
244
+
204
245
  // ProcessMessage = async(data: MessageEvent) => { // Browser version
205
246
  ProcessMessage = async(data: any) => {
206
247
  this.#debug(`ProcessMessage: data: [${JSON.stringify(data)}]`)
@@ -230,6 +271,10 @@ export abstract class WorkerInstance {
230
271
  this.#debug(`ProcessMessage::StopRunner`)
231
272
  this.#StopRunner(payloadMessage.payload as ITestRunnerTelemetryPayload);
232
273
  break;
274
+ case eIWMessageCommands.TerminateRunner :
275
+ this.#debug(`ProcessMessage::TerminateRunner`)
276
+ this.#TerminateRunner(payloadMessage.payload as ITestRunnerTelemetryPayload);
277
+ break;
233
278
  case eIWMessageCommands.PauseRunner :
234
279
  this.#debug(`ProcessMessage::PauseRunner`)
235
280
  this.#PauseRunner(payloadMessage.payload as ITestRunnerTelemetryPayload);
@@ -247,6 +292,10 @@ export abstract class WorkerInstance {
247
292
  this.#ExecuteRunner(payloadMessage.payload as ITestRunnerTelemetryPayload);
248
293
  //@@ should return a response ??
249
294
  break;
295
+ case eIWMessageCommands.UpdateOptions :
296
+ this.#debug(`ProcessMessage::UpdateOptions`)
297
+ this.#UpdateOptions(payloadMessage.payload as ITestRunnerTelemetryPayload);
298
+ break;
250
299
  default :
251
300
  this.#debug(`ProcessMessage::default`)
252
301
  this.#debug(`Invalid payloadMessage.command: [${payloadMessage.command}] - Ignoring`);
@@ -4,7 +4,8 @@ import { IAsyncRunnerContext, IIWMessagePayload, IIWMessagePayloadContentBase,
4
4
  IIWMessageCommand, eIWMessageCommands, IWorkerState, IRunnerState,
5
5
  ISTSAgentWorkerMessagePort, IWorkerEx, IRunner, IRunnerEx,
6
6
  ITestRunnerTelemetryPayload, IRunnerOptions, IRunnerTelemetry,
7
- IWorkerManagerOptions, IWorkerFactory, IRunnerEvent
7
+ IWorkerManagerOptions, IWorkerFactory, IRunnerEvent,
8
+ IWorkerOptions
8
9
  } from './commonTypes'
9
10
 
10
11
  import { ModelDelimeter } from '@nsshunt/stsutils'
@@ -25,10 +26,8 @@ export class STSWorkerManager {
25
26
  #options: IWorkerManagerOptions;
26
27
  #STSInstrumentController: PublishInstrumentController
27
28
  #telemetryProcessor: TelemetryProcessor
28
- #app: any
29
29
 
30
- constructor(app: any, options?: IWorkerManagerOptions) {
31
- this.#app = app;
30
+ constructor(options?: IWorkerManagerOptions) {
32
31
  if (options) {
33
32
  this.#options = options;
34
33
  } else {
@@ -69,10 +68,8 @@ export class STSWorkerManager {
69
68
  const stsWorkerEx: IWorkerEx = {
70
69
  id: workerId,
71
70
  worker: workerFactory.createWorkerThreadWorker(),
72
- primaryWorker: workerFactory.createPrimaryThreadWorker(this.#app, workerFactory.primaryThreadWorkerOptions),
73
71
  state: IWorkerState.starting,
74
72
  workerThreadWorkerOptions: workerFactory.workerThreadWorkerOptions,
75
- primaryThreadWorkerOptions: workerFactory.primaryThreadWorkerOptions,
76
73
  runnersEx: { } as Record<string, IRunnerEx>,
77
74
  runnersEvents: { } as Record<string, IRunnerEvent[]>,
78
75
  AddRunner: (runnerOptions: IRunnerOptions): IRunnerEx => this.AddRunnerToWorker(stsWorkerEx, runnerOptions),
@@ -103,12 +100,14 @@ export class STSWorkerManager {
103
100
 
104
101
  const workerPort = port1;
105
102
 
106
- this.#debug(`AddWorker::workerThreadWorkerOptions: [${JSON.stringify(stsWorkerEx.workerThreadWorkerOptions)}]`);
103
+ this.#debug(`AddWorker::workerThreadWorkerOptions: [${stsWorkerEx.workerThreadWorkerOptions.id}]`);
107
104
 
108
105
  this.#PostMessageToWorker(stsWorkerEx, eIWMessageCommands.MessagePort, {
109
106
  port: port2,
110
107
  //applicationStoreState: stateCopy,
111
- options: { ...stsWorkerEx.workerThreadWorkerOptions }
108
+ options: {
109
+ ...stsWorkerEx.workerThreadWorkerOptions
110
+ } as IWorkerOptions
112
111
  } as ISTSAgentWorkerMessagePort, port2);
113
112
 
114
113
  // Process messages received back from the worker
@@ -131,7 +130,6 @@ export class STSWorkerManager {
131
130
  break;
132
131
  default :
133
132
  this.#debug(`AddWorker::default`);
134
- stsWorkerEx.primaryWorker.ProcessMessageFromWorker(workerPort, publishMessagePayload);
135
133
  }
136
134
  });
137
135
 
@@ -254,6 +252,7 @@ ${this.#runner}`,
254
252
  Reset: async (): Promise<boolean> => this.#ResetRunner(workerEx, runnerEx),
255
253
  Execute: async (): Promise<boolean> => this.#ExecuteRunner(workerEx, runnerEx),
256
254
  Terminate: async (): Promise<boolean> => this.#TerminateRunner(workerEx, runnerEx),
255
+ UpdateOptions: async (options: IRunnerOptions): Promise<boolean> => this.#UpdateOptions(workerEx, runnerEx, options),
257
256
  on: (eventName: string, cb: () => void): IRunnerEx => {
258
257
  if (!workerEx.runnersEvents[runnerEx.id]) {
259
258
  workerEx.runnersEvents[runnerEx.id] = [ ];
@@ -331,7 +330,7 @@ ${this.#runner}`,
331
330
  }
332
331
  }
333
332
  if (runnerEx !== null) {
334
- this.#PostMessageToWorker(workerEx, eIWMessageCommands.StopRunner, {
333
+ this.#PostMessageToWorker(workerEx, eIWMessageCommands.TerminateRunner, {
335
334
  runner: this.#CreateRunnerCopy(runnerEx)
336
335
  } as ITestRunnerTelemetryPayload);
337
336
 
@@ -398,6 +397,14 @@ ${this.#runner}`,
398
397
  }
399
398
  }
400
399
 
400
+ #UpdateOptions = async (workerEx: IWorkerEx, runnerEx: IRunnerEx, options: IRunnerOptions): Promise<boolean> => {
401
+ runnerEx.options = { ...options };
402
+ this.#PostMessageToWorker(workerEx, eIWMessageCommands.UpdateOptions, {
403
+ runner: this.#CreateRunnerCopy(runnerEx)
404
+ } as ITestRunnerTelemetryPayload);
405
+ return true;
406
+ }
407
+
401
408
  GetNextAvailableWorker = (): IWorkerEx | null => {
402
409
  // Calculate the worker with the least runners
403
410
  let leastRunnerWorker: IWorkerEx | null = null;
@@ -30,7 +30,9 @@ export declare enum eIWMessageCommands {
30
30
  ResumeRunner = "__STS__ResumeRunner",
31
31
  ResetRunner = "__STS__ResetRunner",
32
32
  ExecuteRunner = "__STS__ExecuteRunner",
33
- Completed = "__STS__Completed"
33
+ Completed = "__STS__Completed",
34
+ UpdateOptions = "__STS__UpdateOptions",
35
+ TerminateRunner = "__STS__TerminateRunner"
34
36
  }
35
37
  /**
36
38
  * Inter-Worker (IW) message command.
@@ -96,10 +98,19 @@ export interface IRunnerEx extends IRunner {
96
98
  Terminate: () => Promise<boolean>;
97
99
  Reset: () => Promise<boolean>;
98
100
  Execute: (iteration: number) => Promise<boolean>;
101
+ UpdateOptions: (options: IRunnerOptions) => Promise<boolean>;
99
102
  on: (eventName: string, cb: () => void) => IRunnerEx;
100
103
  }
101
104
  export interface IRunnerInstance {
102
105
  Execute: (iteration: number) => Promise<boolean>;
106
+ StartRunner: () => Promise<boolean>;
107
+ StopRunner: () => Promise<boolean>;
108
+ TerminateRunner: () => Promise<boolean>;
109
+ Completed: () => Promise<boolean>;
110
+ PauseRunner: () => Promise<boolean>;
111
+ ResumeRunner: () => Promise<boolean>;
112
+ ResetRunner: () => Promise<boolean>;
113
+ UpdateOptions: () => Promise<boolean>;
103
114
  }
104
115
  export declare enum IWorkerState {
105
116
  starting = "starting",
@@ -107,6 +118,7 @@ export declare enum IWorkerState {
107
118
  stopped = "stopped"
108
119
  }
109
120
  export interface IWorkerOptions {
121
+ id: string;
110
122
  hostName: string;
111
123
  agentId: string;
112
124
  userAgent: string;
@@ -115,14 +127,10 @@ export type Runners = Record<string, IRunner>;
115
127
  export interface IWorker {
116
128
  id: number;
117
129
  state: IWorkerState;
118
- primaryThreadWorkerOptions: IWorkerOptions;
119
130
  workerThreadWorkerOptions: IWorkerOptions;
120
131
  runners?: Runners;
121
132
  }
122
133
  export type Workers = Record<string, IWorker>;
123
- export interface IPrimaryWorker {
124
- ProcessMessageFromWorker(workerPort: MessagePort, publishMessagePayload: IIWMessagePayload): Promise<void>;
125
- }
126
134
  export interface IExecutionProfile {
127
135
  iterations: number;
128
136
  delayBetweenIterations: number;
@@ -137,7 +145,6 @@ export interface IRunnerEvent {
137
145
  }
138
146
  export interface IWorkerEx extends IWorker {
139
147
  worker: Worker;
140
- primaryWorker: IPrimaryWorker;
141
148
  runnersEx: Record<string, IRunnerEx>;
142
149
  runnersEvents: Record<string, IRunnerEvent[]>;
143
150
  GetRunner(id: string): IRunnerEx | null;
@@ -159,10 +166,8 @@ export interface ITestRunnerTelemetryPayload extends IIWMessagePayloadContentBas
159
166
  runner: IRunner;
160
167
  }
161
168
  export interface IWorkerFactory {
162
- createPrimaryThreadWorker: (app: any, options: IWorkerOptions) => IPrimaryWorker;
163
169
  createWorkerThreadWorker: () => Worker;
164
170
  get workerThreadWorkerOptions(): IWorkerOptions;
165
- get primaryThreadWorkerOptions(): IWorkerOptions;
166
171
  }
167
172
  export interface IWorkerManagerOptions {
168
173
  workerFactory: IWorkerFactory;
@@ -186,6 +191,8 @@ export declare const PublishMessageCommandsTestRunner: {
186
191
  readonly ResetRunner: eIWMessageCommands.ResetRunner;
187
192
  readonly ExecuteRunner: eIWMessageCommands.ExecuteRunner;
188
193
  readonly Completed: eIWMessageCommands.Completed;
194
+ readonly UpdateOptions: eIWMessageCommands.UpdateOptions;
195
+ readonly TerminateRunner: eIWMessageCommands.TerminateRunner;
189
196
  };
190
197
  export type PublishMessageCommandsTestRunner = typeof PublishMessageCommandsTestRunner[keyof typeof PublishMessageCommandsTestRunner];
191
198
  export interface IIWMessagePayloadContentBase {
@@ -1 +1 @@
1
- {"version":3,"file":"commonTypes.d.ts","sourceRoot":"","sources":["../../src/testertesting/commonTypes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commonTypes.d.ts","sourceRoot":"","sources":["../../src/testertesting/commonTypes.ts"],"names":[],"mappings":"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"}
@@ -9,5 +9,13 @@ export declare class TestCase01 implements IRunnerInstance {
9
9
  #private;
10
10
  constructor(workerInstance: WorkerInstance, runner: IRunner);
11
11
  Execute: (iteration: number) => Promise<boolean>;
12
+ StartRunner: () => Promise<boolean>;
13
+ StopRunner: () => Promise<boolean>;
14
+ TerminateRunner: () => Promise<boolean>;
15
+ Completed: () => Promise<boolean>;
16
+ PauseRunner: () => Promise<boolean>;
17
+ ResumeRunner: () => Promise<boolean>;
18
+ ResetRunner: () => Promise<boolean>;
19
+ UpdateOptions: () => Promise<boolean>;
12
20
  }
13
21
  //# sourceMappingURL=testCase01.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"testCase01.d.ts","sourceRoot":"","sources":["../../src/testertesting/testCase01.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAIxE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAWjD,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACpD,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;CACxB;AAED,qBAAa,UAAW,YAAW,eAAe;;gBAKlC,cAAc,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO;IAyC3D,OAAO,cAAqB,MAAM,KAAG,OAAO,CAAC,OAAO,CAAC,CAsCpD;CACJ"}
1
+ {"version":3,"file":"testCase01.d.ts","sourceRoot":"","sources":["../../src/testertesting/testCase01.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAIxE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAWjD,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACpD,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;CACxB;AAED,qBAAa,UAAW,YAAW,eAAe;;gBAKlC,cAAc,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO;IAyC3D,OAAO,cAAqB,MAAM,KAAG,OAAO,CAAC,OAAO,CAAC,CAsCpD;IAUD,WAAW,QAAa,OAAO,CAAC,OAAO,CAAC,CAGvC;IAED,UAAU,QAAa,OAAO,CAAC,OAAO,CAAC,CAGtC;IAED,eAAe,QAAa,OAAO,CAAC,OAAO,CAAC,CAG3C;IAED,SAAS,QAAa,OAAO,CAAC,OAAO,CAAC,CAGrC;IAED,WAAW,QAAa,OAAO,CAAC,OAAO,CAAC,CAGvC;IAED,YAAY,QAAa,OAAO,CAAC,OAAO,CAAC,CAGxC;IAED,WAAW,QAAa,OAAO,CAAC,OAAO,CAAC,CAGvC;IAED,aAAa,QAAa,OAAO,CAAC,OAAO,CAAC,CAGzC;CACJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"workerInstance.d.ts","sourceRoot":"","sources":["../../src/testertesting/workerInstance.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EAAuE,eAAe,EAC7D,OAAO,EAAE,2BAA2B,EACnE,MAAM,eAAe,CAAA;AAEtB,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAS/D,MAAM,WAAW,sBAAsB;CAEtC;AAED,MAAM,WAAW,kBAAkB;IAC/B,cAAc,EAAE,eAAe,CAAA;IAC/B,MAAM,EAAE,OAAO,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,OAAO,CAAA;IAClB,MAAM,EAAE,OAAO,CAAA;CAClB;AAED,8BAAsB,cAAc;;;IAchC,YAAY,QAAS,MAAM,YAGzB;IAGF,SAAS,WAAkB,OAAO,KAAG,OAAO,CAAC,IAAI,CAAC,CAGjD;IAED,aAAa,WAAY,OAAO,UAW/B;IAED,IAAI,qBAAqB,IAAI,qBAAqB,GAAG,IAAI,CAExD;IAED,IAAI,sBAAsB,IAAI,WAAW,GAAG,IAAI,CAE/C;IAED,IAAI,OAAO,IAAI,sBAAsB,GAAG,IAAI,CAE3C;IA4BD,iBAAiB,+BAAgC,2BAA2B,KAAG,eAAe,GAAG,IAAI,CAEpG;IAkGD,cAAc,SAAe,GAAG,mBAoD/B;CACJ"}
1
+ {"version":3,"file":"workerInstance.d.ts","sourceRoot":"","sources":["../../src/testertesting/workerInstance.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EAAuE,eAAe,EAC7D,OAAO,EAAE,2BAA2B,EACnE,MAAM,eAAe,CAAA;AAEtB,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAS/D,MAAM,WAAW,sBAAsB;CAEtC;AAED,MAAM,WAAW,kBAAkB;IAC/B,cAAc,EAAE,eAAe,CAAA;IAC/B,MAAM,EAAE,OAAO,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,OAAO,CAAA;IAClB,MAAM,EAAE,OAAO,CAAA;CAClB;AAED,8BAAsB,cAAc;;;IAkBhC,YAAY,QAAS,MAAM,YAGzB;IAGF,SAAS,WAAkB,OAAO,KAAG,OAAO,CAAC,IAAI,CAAC,CAGjD;IAED,aAAa,WAAY,OAAO,UAW/B;IAED,IAAI,qBAAqB,IAAI,qBAAqB,GAAG,IAAI,CAExD;IAED,IAAI,sBAAsB,IAAI,WAAW,GAAG,IAAI,CAE/C;IAED,IAAI,OAAO,IAAI,sBAAsB,GAAG,IAAI,CAE3C;IA4BD,iBAAiB,+BAAgC,2BAA2B,KAAG,eAAe,GAAG,IAAI,CAEpG;IAuID,cAAc,SAAe,GAAG,mBA4D/B;CACJ"}
@@ -1,7 +1,7 @@
1
1
  import { IWorkerEx, IRunnerEx, IRunnerOptions, IWorkerManagerOptions, IWorkerFactory } from './commonTypes';
2
2
  export declare class STSWorkerManager {
3
3
  #private;
4
- constructor(app: any, options?: IWorkerManagerOptions);
4
+ constructor(options?: IWorkerManagerOptions);
5
5
  get WorkersEx(): Record<string, IWorkerEx>;
6
6
  get runnerId(): number;
7
7
  set runnerId(id: number);
@@ -1 +1 @@
1
- {"version":3,"file":"workerManager.d.ts","sourceRoot":"","sources":["../../src/testertesting/workerManager.ts"],"names":[],"mappings":"AAEA,OAAO,EAEyB,SAAS,EAAW,SAAS,EAC5B,cAAc,EAC3C,qBAAqB,EAAE,cAAc,EACxC,MAAM,eAAe,CAAA;AAYtB,qBAAa,gBAAgB;;gBAUb,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,qBAAqB;IAgBrD,IAAI,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAEzC;IAED,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,QAAQ,CAAC,EAAE,EAAE,MAAM,EAEtB;IAED,SAAS,sBAA6B,cAAc,KAAG,OAAO,CAAC,SAAS,CAAC,CAqFxE;IAED,iBAAiB,gBAAiB,SAAS,iBAAiB,cAAc,KAAG,SAAS,CAMrF;IA0PD,sBAAsB,QAAO,SAAS,GAAG,IAAI,CAa5C;IAED,aAAa,QAAO,SAAS,GAAG,IAAI,CAanC;IAED,IAAI,OAAO,IAAI,qBAAqB,CAEnC;IAED,IAAI,OAAO,CAAC,OAAO,EAAE,qBAAqB,EAEzC;IAED,cAAc,sBAMb;CACJ"}
1
+ {"version":3,"file":"workerManager.d.ts","sourceRoot":"","sources":["../../src/testertesting/workerManager.ts"],"names":[],"mappings":"AAEA,OAAO,EAEyB,SAAS,EAAW,SAAS,EAC5B,cAAc,EAC3C,qBAAqB,EAAE,cAAc,EAExC,MAAM,eAAe,CAAA;AAYtB,qBAAa,gBAAgB;;gBASb,OAAO,CAAC,EAAE,qBAAqB;IAe3C,IAAI,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAEzC;IAED,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,QAAQ,CAAC,EAAE,EAAE,MAAM,EAEtB;IAED,SAAS,sBAA6B,cAAc,KAAG,OAAO,CAAC,SAAS,CAAC,CAoFxE;IAED,iBAAiB,gBAAiB,SAAS,iBAAiB,cAAc,KAAG,SAAS,CAMrF;IAmQD,sBAAsB,QAAO,SAAS,GAAG,IAAI,CAa5C;IAED,aAAa,QAAO,SAAS,GAAG,IAAI,CAanC;IAED,IAAI,OAAO,IAAI,qBAAqB,CAEnC;IAED,IAAI,OAAO,CAAC,OAAO,EAAE,qBAAqB,EAEzC;IAED,cAAc,sBAMb;CACJ"}
@@ -1,62 +0,0 @@
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.WorkerPrimaryTestRunner01 = void 0;
7
- const chalk_1 = __importDefault(require("chalk"));
8
- // Force chalk level
9
- chalk_1.default.level = 3;
10
- const commonTypes_1 = require("./commonTypes");
11
- //import { STSOAuth2Manager, STSOAuth2ManagerPluginKey } from '@nsshunt/stsoauth2plugin'
12
- // This will execute within the primary thread context and have access to plugins and other Vue application features
13
- class WorkerPrimaryTestRunner01 {
14
- // #STSOAuth2Manager: STSOAuth2Manager
15
- #options;
16
- #debug = (message) => {
17
- console.log(chalk_1.default.magenta(`pid: [${process.pid}] WorkerPrimaryTestRunner01::${message}`));
18
- };
19
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
20
- constructor(app, options) {
21
- this.#debug(`constructor`);
22
- this.#options = options;
23
- this.#debug(`constructor::options: [${JSON.stringify(this.#options)}]`);
24
- // this.#STSOAuth2Manager = app.config.globalProperties.$sts[STSOAuth2ManagerPluginKey]
25
- }
26
- async ProcessMessageFromWorker(workerPort, publishMessagePayload) {
27
- this.#debug(`ProcessMessageFromWorker`);
28
- // Process messages received back from the worker
29
- switch (publishMessagePayload.command) {
30
- case commonTypes_1.PublishMessageCommandsTestRunner.GetAccessToken:
31
- {
32
- //const access_token = await this.#GetAccessToken();
33
- const access_token = '1234';
34
- workerPort.postMessage({
35
- command: commonTypes_1.PublishMessageCommandsTestRunner.GetAccessTokenResponse,
36
- payload: {
37
- messageId: publishMessagePayload.payload.messageId,
38
- access_token
39
- }
40
- });
41
- }
42
- break;
43
- case commonTypes_1.PublishMessageCommandsTestRunner.ExecuteRefreshToken:
44
- {
45
- //const access_token = await this.#ExecuteRefreshToken();
46
- const access_token = '5678';
47
- workerPort.postMessage({
48
- command: commonTypes_1.PublishMessageCommandsTestRunner.ExecuteRefreshTokenResponse,
49
- payload: {
50
- messageId: publishMessagePayload.payload.messageId,
51
- access_token
52
- }
53
- });
54
- }
55
- break;
56
- default:
57
- throw new Error(`publishMessagePayload.command: [${publishMessagePayload.command}] not allowed`);
58
- }
59
- }
60
- }
61
- exports.WorkerPrimaryTestRunner01 = WorkerPrimaryTestRunner01;
62
- //# sourceMappingURL=workerPrimaryTestRunner01.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workerPrimaryTestRunner01.js","sourceRoot":"","sources":["../../src/testertesting/workerPrimaryTestRunner01.ts"],"names":[],"mappings":";;;;;;AAEA,kDAA0B;AAC1B,oBAAoB;AACpB,eAAK,CAAC,KAAK,GAAG,CAAC,CAAC;AAEhB,+CAC0E;AAE1E,wFAAwF;AAExF,oHAAoH;AACpH,MAAa,yBAAyB;IACtC,yCAAyC;IACrC,QAAQ,CAAgB;IAExB,MAAM,GAAG,CAAC,OAAe,EAAE,EAAE;QACzB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,OAAO,CAAC,SAAS,OAAO,CAAC,GAAG,gCAAgC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC9F,CAAC,CAAA;IAED,+DAA+D;IAC/D,YAAY,GAAQ,EAAE,OAAuB;QACzC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;QAC1B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,MAAM,CAAC,0BAA0B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACxE,8FAA8F;IAClG,CAAC;IAED,KAAK,CAAC,wBAAwB,CAAC,UAAuB,EAAE,qBAAwC;QAC5F,IAAI,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAA;QACvC,iDAAiD;QACjD,QAAQ,qBAAqB,CAAC,OAA2C,EAAE,CAAC;YAC5E,KAAK,8CAAgC,CAAC,cAAc;gBAAG,CAAC;oBACpD,oDAAoD;oBACpD,MAAM,YAAY,GAAG,MAAM,CAAC;oBAC5B,UAAU,CAAC,WAAW,CAAC;wBACnB,OAAO,EAAE,8CAAgC,CAAC,sBAAsB;wBAChE,OAAO,EAAE;4BACL,SAAS,EAAE,qBAAqB,CAAC,OAAO,CAAC,SAAS;4BAClD,YAAY;yBACiB;qBACpC,CAAC,CAAA;gBAAA,CAAC;gBACH,MAAM;YACV,KAAK,8CAAgC,CAAC,mBAAmB;gBAAG,CAAC;oBACzD,yDAAyD;oBACzD,MAAM,YAAY,GAAG,MAAM,CAAC;oBAC5B,UAAU,CAAC,WAAW,CAAC;wBACnB,OAAO,EAAE,8CAAgC,CAAC,2BAA2B;wBACrE,OAAO,EAAE;4BACL,SAAS,EAAE,qBAAqB,CAAC,OAAO,CAAC,SAAS;4BAClD,YAAY;yBACiB;qBACpC,CAAC,CAAA;gBAAA,CAAC;gBACH,MAAM;YACV;gBACI,MAAM,IAAI,KAAK,CAAC,mCAAmC,qBAAqB,CAAC,OAAO,eAAe,CAAC,CAAC;QACrG,CAAC;IACL,CAAC;CAuBJ;AApED,8DAoEC"}