@serenity-js/core 3.23.2 → 3.24.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/CHANGELOG.md +32 -0
- package/lib/errors/ErrorFactory.js +4 -4
- package/lib/errors/ErrorFactory.js.map +1 -1
- package/lib/errors/RaiseErrors.d.ts +2 -2
- package/lib/errors/RaiseErrors.js +2 -2
- package/lib/io/index.d.ts +0 -1
- package/lib/io/index.d.ts.map +1 -1
- package/lib/io/index.js +0 -1
- package/lib/io/index.js.map +1 -1
- package/lib/io/inspectedObject.js +1 -1
- package/lib/io/inspectedObject.js.map +1 -1
- package/lib/io/reflection/ValueInspector.d.ts +56 -0
- package/lib/io/reflection/ValueInspector.d.ts.map +1 -0
- package/lib/io/reflection/ValueInspector.js +149 -0
- package/lib/io/reflection/ValueInspector.js.map +1 -0
- package/lib/io/reflection/index.d.ts +1 -2
- package/lib/io/reflection/index.d.ts.map +1 -1
- package/lib/io/reflection/index.js +1 -2
- package/lib/io/reflection/index.js.map +1 -1
- package/lib/io/stringified.js +7 -90
- package/lib/io/stringified.js.map +1 -1
- package/lib/screenplay/Activity.d.ts +5 -12
- package/lib/screenplay/Activity.d.ts.map +1 -1
- package/lib/screenplay/Activity.js +3 -14
- package/lib/screenplay/Activity.js.map +1 -1
- package/lib/screenplay/Actor.js +1 -1
- package/lib/screenplay/Actor.js.map +1 -1
- package/lib/screenplay/Interaction.d.ts +4 -3
- package/lib/screenplay/Interaction.d.ts.map +1 -1
- package/lib/screenplay/Interaction.js +2 -2
- package/lib/screenplay/Interaction.js.map +1 -1
- package/lib/screenplay/Question.d.ts +73 -21
- package/lib/screenplay/Question.d.ts.map +1 -1
- package/lib/screenplay/Question.js +237 -30
- package/lib/screenplay/Question.js.map +1 -1
- package/lib/screenplay/Task.d.ts +16 -15
- package/lib/screenplay/Task.d.ts.map +1 -1
- package/lib/screenplay/Task.js +14 -14
- package/lib/screenplay/Task.js.map +1 -1
- package/lib/screenplay/abilities/Ability.d.ts +8 -6
- package/lib/screenplay/abilities/Ability.d.ts.map +1 -1
- package/lib/screenplay/abilities/Ability.js +8 -6
- package/lib/screenplay/abilities/Ability.js.map +1 -1
- package/lib/screenplay/abilities/AbilityType.d.ts +3 -3
- package/lib/screenplay/abilities/AnswerQuestions.d.ts +0 -1
- package/lib/screenplay/abilities/AnswerQuestions.d.ts.map +1 -1
- package/lib/screenplay/abilities/AnswerQuestions.js +2 -4
- package/lib/screenplay/abilities/AnswerQuestions.js.map +1 -1
- package/lib/screenplay/abilities/PerformActivities.d.ts +5 -3
- package/lib/screenplay/abilities/PerformActivities.d.ts.map +1 -1
- package/lib/screenplay/abilities/PerformActivities.js +12 -10
- package/lib/screenplay/abilities/PerformActivities.js.map +1 -1
- package/lib/screenplay/artifacts/CollectsArtifacts.d.ts +2 -2
- package/lib/screenplay/notes/NotepadAdapter.d.ts.map +1 -1
- package/lib/screenplay/notes/NotepadAdapter.js +44 -4
- package/lib/screenplay/notes/NotepadAdapter.js.map +1 -1
- package/lib/screenplay/questions/Describable.d.ts +27 -0
- package/lib/screenplay/questions/Describable.d.ts.map +1 -0
- package/lib/screenplay/questions/Describable.js +40 -0
- package/lib/screenplay/questions/Describable.js.map +1 -0
- package/lib/screenplay/questions/DescriptionFormattingOptions.d.ts +14 -0
- package/lib/screenplay/questions/DescriptionFormattingOptions.d.ts.map +1 -0
- package/lib/screenplay/questions/DescriptionFormattingOptions.js +3 -0
- package/lib/screenplay/questions/DescriptionFormattingOptions.js.map +1 -0
- package/lib/screenplay/questions/Expectation.d.ts +6 -10
- package/lib/screenplay/questions/Expectation.d.ts.map +1 -1
- package/lib/screenplay/questions/Expectation.js +12 -15
- package/lib/screenplay/questions/Expectation.js.map +1 -1
- package/lib/screenplay/questions/List.d.ts +1 -3
- package/lib/screenplay/questions/List.d.ts.map +1 -1
- package/lib/screenplay/questions/List.js +6 -31
- package/lib/screenplay/questions/List.js.map +1 -1
- package/lib/screenplay/questions/Unanswered.d.ts +1 -0
- package/lib/screenplay/questions/Unanswered.d.ts.map +1 -1
- package/lib/screenplay/questions/Unanswered.js +3 -0
- package/lib/screenplay/questions/Unanswered.js.map +1 -1
- package/lib/screenplay/questions/expectations/ExpectationDetails.js +1 -1
- package/lib/screenplay/questions/expectations/ExpectationDetails.js.map +1 -1
- package/lib/screenplay/questions/index.d.ts +3 -1
- package/lib/screenplay/questions/index.d.ts.map +1 -1
- package/lib/screenplay/questions/index.js +3 -1
- package/lib/screenplay/questions/index.js.map +1 -1
- package/lib/screenplay/questions/tag-functions.d.ts +228 -0
- package/lib/screenplay/questions/tag-functions.d.ts.map +1 -0
- package/lib/screenplay/questions/tag-functions.js +115 -0
- package/lib/screenplay/questions/tag-functions.js.map +1 -0
- package/lib/screenplay/time/activities/Wait.d.ts.map +1 -1
- package/lib/screenplay/time/activities/Wait.js +4 -3
- package/lib/screenplay/time/activities/Wait.js.map +1 -1
- package/package.json +6 -6
- package/src/errors/ErrorFactory.ts +5 -5
- package/src/errors/RaiseErrors.ts +2 -2
- package/src/io/index.ts +0 -1
- package/src/io/inspectedObject.ts +2 -2
- package/src/io/reflection/ValueInspector.ts +165 -0
- package/src/io/reflection/index.ts +1 -2
- package/src/io/stringified.ts +7 -103
- package/src/screenplay/Activity.ts +6 -17
- package/src/screenplay/Actor.ts +2 -2
- package/src/screenplay/Interaction.ts +5 -4
- package/src/screenplay/Question.ts +299 -49
- package/src/screenplay/Task.ts +18 -17
- package/src/screenplay/abilities/Ability.ts +8 -6
- package/src/screenplay/abilities/AbilityType.ts +3 -3
- package/src/screenplay/abilities/AnswerQuestions.ts +2 -5
- package/src/screenplay/abilities/PerformActivities.ts +35 -18
- package/src/screenplay/artifacts/CollectsArtifacts.ts +2 -2
- package/src/screenplay/notes/NotepadAdapter.ts +57 -6
- package/src/screenplay/questions/Describable.ts +48 -0
- package/src/screenplay/questions/DescriptionFormattingOptions.ts +13 -0
- package/src/screenplay/questions/Expectation.ts +19 -19
- package/src/screenplay/questions/List.ts +7 -41
- package/src/screenplay/questions/Unanswered.ts +4 -0
- package/src/screenplay/questions/expectations/ExpectationDetails.ts +2 -2
- package/src/screenplay/questions/index.ts +3 -1
- package/src/screenplay/questions/tag-functions.ts +313 -0
- package/src/screenplay/time/activities/Wait.ts +4 -3
- package/lib/io/isPlainObject.d.ts +0 -7
- package/lib/io/isPlainObject.d.ts.map +0 -1
- package/lib/io/isPlainObject.js +0 -25
- package/lib/io/isPlainObject.js.map +0 -1
- package/lib/io/reflection/isPrimitive.d.ts +0 -8
- package/lib/io/reflection/isPrimitive.d.ts.map +0 -1
- package/lib/io/reflection/isPrimitive.js +0 -24
- package/lib/io/reflection/isPrimitive.js.map +0 -1
- package/lib/io/reflection/typeOf.d.ts +0 -7
- package/lib/io/reflection/typeOf.d.ts.map +0 -1
- package/lib/io/reflection/typeOf.js +0 -35
- package/lib/io/reflection/typeOf.js.map +0 -1
- package/lib/screenplay/questions/q.d.ts +0 -66
- package/lib/screenplay/questions/q.d.ts.map +0 -1
- package/lib/screenplay/questions/q.js +0 -77
- package/lib/screenplay/questions/q.js.map +0 -1
- package/src/io/isPlainObject.ts +0 -24
- package/src/io/reflection/isPrimitive.ts +0 -20
- package/src/io/reflection/typeOf.ts +0 -31
- package/src/screenplay/questions/q.ts +0 -82
|
@@ -29,6 +29,8 @@ const util = __importStar(require("util")); // eslint-disable-line unicorn/impor
|
|
|
29
29
|
const errors_1 = require("../errors");
|
|
30
30
|
const io_1 = require("../io");
|
|
31
31
|
const Interaction_1 = require("./Interaction");
|
|
32
|
+
const Describable_1 = require("./questions/Describable");
|
|
33
|
+
const tag_functions_1 = require("./questions/tag-functions");
|
|
32
34
|
const Unanswered_1 = require("./questions/Unanswered");
|
|
33
35
|
/**
|
|
34
36
|
* **Questions** describe how {@apilink Actor|actors} should query the system under test or the test environment to retrieve some information.
|
|
@@ -95,16 +97,18 @@ const Unanswered_1 = require("./questions/Unanswered");
|
|
|
95
97
|
* import { Ensure, equals } from '@serenity-js/assertions'
|
|
96
98
|
*
|
|
97
99
|
* const RequestWasSuccessful = () =>
|
|
98
|
-
* Question.about<number>(`the text of the last response status`, actor => {
|
|
99
|
-
*
|
|
100
|
-
*
|
|
100
|
+
* Question.about<number>(`the text of the last response status`, async actor => {
|
|
101
|
+
* const status = await actor.answer(LastResponse.status());
|
|
102
|
+
*
|
|
103
|
+
* return status === 200;
|
|
104
|
+
* })
|
|
101
105
|
*
|
|
102
106
|
* await actorCalled('Quentin')
|
|
103
107
|
* .whoCan(CallAnApi.at('https://api.example.org/'));
|
|
104
108
|
* .attemptsTo(
|
|
105
109
|
* Send.a(GetRequest.to('/books/0-688-00230-7')),
|
|
106
110
|
* Ensure.that(RequestWasSuccessful(), isTrue()),
|
|
107
|
-
* )
|
|
111
|
+
* )
|
|
108
112
|
* ```
|
|
109
113
|
*
|
|
110
114
|
* Note that the above example is for demonstration purposes only, Serenity/JS provides an easier way to
|
|
@@ -120,12 +124,12 @@ const Unanswered_1 = require("./questions/Unanswered");
|
|
|
120
124
|
* .attemptsTo(
|
|
121
125
|
* Send.a(GetRequest.to('/books/0-688-00230-7')),
|
|
122
126
|
* Ensure.that(LastResponse.status(), equals(200)),
|
|
123
|
-
* )
|
|
127
|
+
* )
|
|
124
128
|
* ```
|
|
125
129
|
*
|
|
126
130
|
* @group Screenplay Pattern
|
|
127
131
|
*/
|
|
128
|
-
class Question {
|
|
132
|
+
class Question extends Describable_1.Describable {
|
|
129
133
|
static about(description, body, metaQuestionBody) {
|
|
130
134
|
const statement = typeof metaQuestionBody === 'function'
|
|
131
135
|
? new MetaQuestionStatement(description, body, metaQuestionBody)
|
|
@@ -211,9 +215,18 @@ class Question {
|
|
|
211
215
|
* Generates a {@apilink QuestionAdapter} that resolves
|
|
212
216
|
* any {@apilink Answerable} elements of the provided array.
|
|
213
217
|
*/
|
|
214
|
-
static fromArray(source) {
|
|
215
|
-
|
|
216
|
-
|
|
218
|
+
static fromArray(source, options) {
|
|
219
|
+
const formatter = new ValueFormatter(ValueFormatter.defaultOptions);
|
|
220
|
+
const description = source.length === 0
|
|
221
|
+
? '[ ]'
|
|
222
|
+
: Question.about(formatter.format(source), async (actor) => {
|
|
223
|
+
const descriptions = await (0, io_1.asyncMap)(source, item => item instanceof Describable_1.Describable
|
|
224
|
+
? item.describedBy(actor)
|
|
225
|
+
: Question.formattedValue(options).of(item).answeredBy(actor));
|
|
226
|
+
return `[ ${descriptions.join(', ')} ]`;
|
|
227
|
+
});
|
|
228
|
+
return Question.about(description, async (actor) => {
|
|
229
|
+
return await (0, io_1.asyncMap)(source, item => actor.answer(item));
|
|
217
230
|
});
|
|
218
231
|
}
|
|
219
232
|
/**
|
|
@@ -237,6 +250,60 @@ class Question {
|
|
|
237
250
|
&& typeof maybeMetaQuestion['of'] === 'function'
|
|
238
251
|
&& maybeMetaQuestion['of'].length === 1; // arity of 1
|
|
239
252
|
}
|
|
253
|
+
/**
|
|
254
|
+
* Creates a {@apilink MetaQuestion} that can be composed with any {@apilink Answerable}
|
|
255
|
+
* to produce a single-line description of its value.
|
|
256
|
+
*
|
|
257
|
+
* ```ts
|
|
258
|
+
* import { actorCalled, Question } from '@serenity-js/core'
|
|
259
|
+
* import { Ensure, equals } from '@serenity-js/assertions'
|
|
260
|
+
*
|
|
261
|
+
* const accountDetails = () =>
|
|
262
|
+
* Question.about('account details', actor => ({ name: 'Alice', age: 28 }))
|
|
263
|
+
*
|
|
264
|
+
* await actorCalled('Alice').attemptsTo(
|
|
265
|
+
* Ensure.that(
|
|
266
|
+
* Question.formattedValue().of(accountDetails()),
|
|
267
|
+
* equals('{ name: "Alice", age: 28 }'),
|
|
268
|
+
* ),
|
|
269
|
+
* )
|
|
270
|
+
* ```
|
|
271
|
+
*
|
|
272
|
+
* @param options
|
|
273
|
+
*/
|
|
274
|
+
static formattedValue(options) {
|
|
275
|
+
return MetaQuestionAboutFormattedValue.using(options);
|
|
276
|
+
}
|
|
277
|
+
/**
|
|
278
|
+
* Creates a {@apilink MetaQuestion} that can be composed with any {@apilink Answerable}
|
|
279
|
+
* to return its value when the answerable is a {@apilink Question},
|
|
280
|
+
* or the answerable itself otherwise.
|
|
281
|
+
*
|
|
282
|
+
* The description of the resulting question is produced by calling {@apilink Question.description} on the
|
|
283
|
+
* provided answerable.
|
|
284
|
+
*
|
|
285
|
+
* ```ts
|
|
286
|
+
* import { actorCalled, Question } from '@serenity-js/core'
|
|
287
|
+
* import { Ensure, equals } from '@serenity-js/assertions'
|
|
288
|
+
*
|
|
289
|
+
* const accountDetails = () =>
|
|
290
|
+
* Question.about('account details', actor => ({ name: 'Alice', age: 28 }))
|
|
291
|
+
*
|
|
292
|
+
* await actorCalled('Alice').attemptsTo(
|
|
293
|
+
* Ensure.that(
|
|
294
|
+
* Question.description().of(accountDetails()),
|
|
295
|
+
* equals('account details'),
|
|
296
|
+
* ),
|
|
297
|
+
* Ensure.that(
|
|
298
|
+
* Question.value().of(accountDetails()),
|
|
299
|
+
* equals({ name: 'Alice', age: 28 }),
|
|
300
|
+
* ),
|
|
301
|
+
* )
|
|
302
|
+
* ```
|
|
303
|
+
*/
|
|
304
|
+
static value() {
|
|
305
|
+
return new MetaQuestionAboutValue();
|
|
306
|
+
}
|
|
240
307
|
static createAdapter(statement) {
|
|
241
308
|
function getStatement() {
|
|
242
309
|
return statement;
|
|
@@ -277,7 +344,7 @@ class Question {
|
|
|
277
344
|
if (key === 'then') {
|
|
278
345
|
return;
|
|
279
346
|
}
|
|
280
|
-
return Question.about(Question.
|
|
347
|
+
return Question.about(Question.staticFieldDescription(target, key), async (actor) => {
|
|
281
348
|
const answer = await actor.answer(target);
|
|
282
349
|
if (!isDefined(answer)) {
|
|
283
350
|
return undefined; // eslint-disable-line unicorn/no-useless-undefined
|
|
@@ -286,7 +353,7 @@ class Question {
|
|
|
286
353
|
return typeof field === 'function'
|
|
287
354
|
? field.bind(answer)
|
|
288
355
|
: field;
|
|
289
|
-
});
|
|
356
|
+
}).describedAs(Question.formattedValue());
|
|
290
357
|
},
|
|
291
358
|
set(currentStatement, key, value, receiver) {
|
|
292
359
|
const target = currentStatement();
|
|
@@ -311,7 +378,7 @@ class Question {
|
|
|
311
378
|
},
|
|
312
379
|
});
|
|
313
380
|
}
|
|
314
|
-
static
|
|
381
|
+
static staticFieldDescription(target, key) {
|
|
315
382
|
// "of" is characteristic of Serenity/JS MetaQuestion
|
|
316
383
|
if (key === 'of') {
|
|
317
384
|
return `${target} ${key}`;
|
|
@@ -333,6 +400,21 @@ class Question {
|
|
|
333
400
|
].join('');
|
|
334
401
|
return `${targetDescription}${parameterDescriptions}`;
|
|
335
402
|
}
|
|
403
|
+
/**
|
|
404
|
+
* Changes the description of this object, as returned by {@apilink Describable.describedBy}
|
|
405
|
+
* and {@apilink Describable.toString}.
|
|
406
|
+
*
|
|
407
|
+
* @param description
|
|
408
|
+
* Replaces the current description according to the following rules:
|
|
409
|
+
* - If `description` is an {@apilink Answerable}, it replaces the current description
|
|
410
|
+
* - If `description` is a {@apilink MetaQuestion}, the current description is passed as `context` to `description.of(context)`, and the result replaces the current description
|
|
411
|
+
*/
|
|
412
|
+
describedAs(description) {
|
|
413
|
+
super.setDescription(Question.isAMetaQuestion(description)
|
|
414
|
+
? description.of(this)
|
|
415
|
+
: description);
|
|
416
|
+
return this;
|
|
417
|
+
}
|
|
336
418
|
/**
|
|
337
419
|
* Maps this question to one of a different type.
|
|
338
420
|
*
|
|
@@ -355,12 +437,10 @@ exports.Question = Question;
|
|
|
355
437
|
* @package
|
|
356
438
|
*/
|
|
357
439
|
class QuestionStatement extends Interaction_1.Interaction {
|
|
358
|
-
subject;
|
|
359
440
|
body;
|
|
360
441
|
answer = new Unanswered_1.Unanswered();
|
|
361
442
|
constructor(subject, body, location = QuestionStatement.callerLocation(4)) {
|
|
362
443
|
super(subject, location);
|
|
363
|
-
this.subject = subject;
|
|
364
444
|
this.body = body;
|
|
365
445
|
}
|
|
366
446
|
/**
|
|
@@ -380,13 +460,12 @@ class QuestionStatement extends Interaction_1.Interaction {
|
|
|
380
460
|
[util.inspect.custom](depth, options, inspect) {
|
|
381
461
|
return (0, io_1.inspectedObject)(this.answer)(depth, options, inspect);
|
|
382
462
|
}
|
|
383
|
-
describedAs(
|
|
384
|
-
|
|
463
|
+
describedAs(description) {
|
|
464
|
+
super.setDescription(Question.isAMetaQuestion(description)
|
|
465
|
+
? description.of(this)
|
|
466
|
+
: description);
|
|
385
467
|
return this;
|
|
386
468
|
}
|
|
387
|
-
toString() {
|
|
388
|
-
return this.subject;
|
|
389
|
-
}
|
|
390
469
|
as(mapping) {
|
|
391
470
|
return Question.about((0, io_1.f) `${this}.as(${mapping})`, async (actor) => {
|
|
392
471
|
const answer = await actor.answer(this);
|
|
@@ -407,7 +486,7 @@ class MetaQuestionStatement extends QuestionStatement {
|
|
|
407
486
|
this.metaQuestionBody = metaQuestionBody;
|
|
408
487
|
}
|
|
409
488
|
of(answerable) {
|
|
410
|
-
return Question.about(
|
|
489
|
+
return Question.about((0, tag_functions_1.the) `${this} of ${answerable}`, actor => actor.answer(this.metaQuestionBody(answerable)));
|
|
411
490
|
}
|
|
412
491
|
}
|
|
413
492
|
/**
|
|
@@ -415,11 +494,9 @@ class MetaQuestionStatement extends QuestionStatement {
|
|
|
415
494
|
*/
|
|
416
495
|
class IsPresent extends Question {
|
|
417
496
|
question;
|
|
418
|
-
subject;
|
|
419
497
|
constructor(question) {
|
|
420
|
-
super();
|
|
498
|
+
super((0, io_1.f) `${question}.isPresent()`);
|
|
421
499
|
this.question = question;
|
|
422
|
-
this.subject = (0, io_1.f) `${question}.isPresent()`;
|
|
423
500
|
}
|
|
424
501
|
async answeredBy(actor) {
|
|
425
502
|
try {
|
|
@@ -440,13 +517,6 @@ class IsPresent extends Question {
|
|
|
440
517
|
return typeof maybeOptional === 'object'
|
|
441
518
|
&& Reflect.has(maybeOptional, 'isPresent');
|
|
442
519
|
}
|
|
443
|
-
describedAs(subject) {
|
|
444
|
-
this.subject = subject;
|
|
445
|
-
return this;
|
|
446
|
-
}
|
|
447
|
-
toString() {
|
|
448
|
-
return this.subject;
|
|
449
|
-
}
|
|
450
520
|
}
|
|
451
521
|
/**
|
|
452
522
|
* @package
|
|
@@ -484,4 +554,141 @@ async function recursivelyAnswer(actor, answerable, description, currentRecursio
|
|
|
484
554
|
}
|
|
485
555
|
return answer;
|
|
486
556
|
}
|
|
557
|
+
class MetaQuestionAboutValue {
|
|
558
|
+
of(answerable) {
|
|
559
|
+
return new QuestionAboutValue(answerable);
|
|
560
|
+
}
|
|
561
|
+
toString() {
|
|
562
|
+
return 'value';
|
|
563
|
+
}
|
|
564
|
+
}
|
|
565
|
+
class QuestionAboutValue extends Question {
|
|
566
|
+
context;
|
|
567
|
+
constructor(context) {
|
|
568
|
+
super(QuestionAboutFormattedValue.of(context).toString());
|
|
569
|
+
this.context = context;
|
|
570
|
+
}
|
|
571
|
+
async answeredBy(actor) {
|
|
572
|
+
return await actor.answer(this.context);
|
|
573
|
+
}
|
|
574
|
+
}
|
|
575
|
+
class MetaQuestionAboutFormattedValue {
|
|
576
|
+
formatter;
|
|
577
|
+
static using(options) {
|
|
578
|
+
return new MetaQuestionAboutFormattedValue(new ValueFormatter({
|
|
579
|
+
...ValueFormatter.defaultOptions,
|
|
580
|
+
...options,
|
|
581
|
+
}));
|
|
582
|
+
}
|
|
583
|
+
constructor(formatter) {
|
|
584
|
+
this.formatter = formatter;
|
|
585
|
+
}
|
|
586
|
+
of(context) {
|
|
587
|
+
return new QuestionAboutFormattedValue(this.formatter, context);
|
|
588
|
+
}
|
|
589
|
+
toString() {
|
|
590
|
+
return 'formatted value';
|
|
591
|
+
}
|
|
592
|
+
}
|
|
593
|
+
class QuestionAboutFormattedValue extends Question {
|
|
594
|
+
formatter;
|
|
595
|
+
context;
|
|
596
|
+
static of(context) {
|
|
597
|
+
return new QuestionAboutFormattedValue(new ValueFormatter(ValueFormatter.defaultOptions), context);
|
|
598
|
+
}
|
|
599
|
+
constructor(formatter, context) {
|
|
600
|
+
const description = context === undefined
|
|
601
|
+
? 'formatted value'
|
|
602
|
+
: formatter.format(context);
|
|
603
|
+
super(description);
|
|
604
|
+
this.formatter = formatter;
|
|
605
|
+
this.context = context;
|
|
606
|
+
}
|
|
607
|
+
async answeredBy(actor) {
|
|
608
|
+
const answer = await actor.answer(this.context);
|
|
609
|
+
return this.formatter.format(answer);
|
|
610
|
+
}
|
|
611
|
+
async describedBy(actor) {
|
|
612
|
+
const unanswered = !this.context
|
|
613
|
+
|| !this.context['answer']
|
|
614
|
+
|| Unanswered_1.Unanswered.isUnanswered(this.context.answer);
|
|
615
|
+
const answer = unanswered
|
|
616
|
+
? await actor.answer(this.context)
|
|
617
|
+
: this.context.answer;
|
|
618
|
+
return this.formatter.format(answer);
|
|
619
|
+
}
|
|
620
|
+
of(context) {
|
|
621
|
+
return new QuestionAboutFormattedValue(this.formatter, Question.isAMetaQuestion(this.context)
|
|
622
|
+
? this.context.of(context)
|
|
623
|
+
: context);
|
|
624
|
+
}
|
|
625
|
+
}
|
|
626
|
+
class ValueFormatter {
|
|
627
|
+
options;
|
|
628
|
+
static defaultOptions = { maxLength: Number.POSITIVE_INFINITY };
|
|
629
|
+
constructor(options) {
|
|
630
|
+
this.options = options;
|
|
631
|
+
}
|
|
632
|
+
format(value) {
|
|
633
|
+
if (value === null) {
|
|
634
|
+
return 'null';
|
|
635
|
+
}
|
|
636
|
+
if (value === undefined) {
|
|
637
|
+
return 'undefined';
|
|
638
|
+
}
|
|
639
|
+
if (typeof value === 'string') {
|
|
640
|
+
return `"${this.trim(value)}"`;
|
|
641
|
+
}
|
|
642
|
+
if (typeof value === 'symbol') {
|
|
643
|
+
return `Symbol(${this.trim(value.description)})`;
|
|
644
|
+
}
|
|
645
|
+
if (typeof value === 'bigint') {
|
|
646
|
+
return `${this.trim(value.toString())}`;
|
|
647
|
+
}
|
|
648
|
+
if (io_1.ValueInspector.isPromise(value)) {
|
|
649
|
+
return 'Promise';
|
|
650
|
+
}
|
|
651
|
+
if (Array.isArray(value)) {
|
|
652
|
+
return value.length === 0
|
|
653
|
+
? '[ ]'
|
|
654
|
+
: `[ ${this.trim(value.map(item => this.format(item)).join(', '))} ]`;
|
|
655
|
+
}
|
|
656
|
+
if (value instanceof Map) {
|
|
657
|
+
return `Map(${this.format(Object.fromEntries(value.entries()))})`;
|
|
658
|
+
}
|
|
659
|
+
if (value instanceof Set) {
|
|
660
|
+
return `Set(${this.format(Array.from(value.values()))})`;
|
|
661
|
+
}
|
|
662
|
+
if (io_1.ValueInspector.isDate(value)) {
|
|
663
|
+
return `Date(${value.toISOString()})`;
|
|
664
|
+
}
|
|
665
|
+
if (value instanceof RegExp) {
|
|
666
|
+
return `${value}`;
|
|
667
|
+
}
|
|
668
|
+
if (io_1.ValueInspector.hasItsOwnToString(value)) {
|
|
669
|
+
return `${this.trim(value.toString())}`;
|
|
670
|
+
}
|
|
671
|
+
if (io_1.ValueInspector.isPlainObject(value)) {
|
|
672
|
+
const stringifiedEntries = Object
|
|
673
|
+
.entries(value)
|
|
674
|
+
.reduce((acc, [key, value]) => acc.concat(`${key}: ${this.format(value)}`), [])
|
|
675
|
+
.join(', ');
|
|
676
|
+
return `{ ${this.trim(stringifiedEntries)} }`;
|
|
677
|
+
}
|
|
678
|
+
if (typeof value === 'object') {
|
|
679
|
+
const entries = (0, objects_1.significantFieldsOf)(value)
|
|
680
|
+
.map(field => [field, value[field]]);
|
|
681
|
+
return `${value.constructor.name}(${this.format(Object.fromEntries(entries))})`;
|
|
682
|
+
}
|
|
683
|
+
return String(value);
|
|
684
|
+
}
|
|
685
|
+
trim(value) {
|
|
686
|
+
const ellipsis = '...';
|
|
687
|
+
const oneLiner = value.replaceAll(/\n+/g, ' ');
|
|
688
|
+
const maxLength = Math.max(ellipsis.length + 1, this.options.maxLength);
|
|
689
|
+
return oneLiner.length > maxLength
|
|
690
|
+
? `${oneLiner.slice(0, Math.max(0, maxLength) - ellipsis.length)}${ellipsis}`
|
|
691
|
+
: oneLiner;
|
|
692
|
+
}
|
|
693
|
+
}
|
|
487
694
|
//# sourceMappingURL=Question.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Question.js","sourceRoot":"","sources":["../../src/screenplay/Question.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Question.js","sourceRoot":"","sources":["../../src/screenplay/Question.ts"],"names":[],"mappings":"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"}
|
package/lib/screenplay/Task.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { PerformsActivities } from './activities';
|
|
2
2
|
import { Activity } from './Activity';
|
|
3
|
+
import type { Answerable } from './Answerable';
|
|
3
4
|
/**
|
|
4
5
|
* **Tasks** model **{@apilink Activity|sequences of activities}**
|
|
5
6
|
* and help you capture meaningful steps of an {@apilink Actor|actor} workflow
|
|
@@ -28,11 +29,11 @@ import { Activity } from './Activity';
|
|
|
28
29
|
* ## Defining a task
|
|
29
30
|
*
|
|
30
31
|
* ```ts
|
|
31
|
-
* import { Answerable, Task,
|
|
32
|
+
* import { Answerable, Task, the } from '@serenity-js/core'
|
|
32
33
|
* import { By, Click, Enter, PageElement, Press, Key } from '@serenity-js/web'
|
|
33
34
|
*
|
|
34
35
|
* const SignIn = (username: Answerable<string>, password: Answerable<string>) =>
|
|
35
|
-
* Task.where(
|
|
36
|
+
* Task.where(the`#actor signs is as ${ username }`,
|
|
36
37
|
* Enter.theValue(username).into(PageElement.located(By.id('username'))),
|
|
37
38
|
* Enter.theValue(password).into(PageElement.located(By.id('password'))),
|
|
38
39
|
* Press.the(Key.Enter),
|
|
@@ -48,11 +49,11 @@ import { Activity } from './Activity';
|
|
|
48
49
|
* but you're not yet sure what activities it will involve.
|
|
49
50
|
*
|
|
50
51
|
* ```ts
|
|
51
|
-
* import { Task } from '@serenity-js/core'
|
|
52
|
+
* import { Task, the } from '@serenity-js/core'
|
|
52
53
|
*
|
|
53
54
|
* const SignUp = () =>
|
|
54
|
-
* Task.where(`#actor signs up for a newsletter`) // no activities provided
|
|
55
|
-
*
|
|
55
|
+
* Task.where(the`#actor signs up for a newsletter`) // no activities provided
|
|
56
|
+
* // => task marked as pending
|
|
56
57
|
* ```
|
|
57
58
|
*
|
|
58
59
|
* ## Composing activities into tasks
|
|
@@ -72,10 +73,10 @@ import { Activity } from './Activity';
|
|
|
72
73
|
* The easiest way to implement such task, and any custom Serenity/JS task for this matter, is to use the {@apilink Task.where} method to compose the lower-level activities:
|
|
73
74
|
*
|
|
74
75
|
* ```typescript
|
|
75
|
-
* import { Task } from '@serenity-js/core'
|
|
76
|
+
* import { Task, the } from '@serenity-js/core'
|
|
76
77
|
*
|
|
77
78
|
* const findFlight = (originCity: string, destinationCity: string) =>
|
|
78
|
-
* Task.where(`#
|
|
79
|
+
* Task.where(the`#actor finds a flight from ${ originCity } to ${ destinationCity }`, // task goal
|
|
79
80
|
* specifyOriginCity(originCity), // activities
|
|
80
81
|
* specifyDestinationCity(originCity),
|
|
81
82
|
* )
|
|
@@ -97,20 +98,20 @@ import { Activity } from './Activity';
|
|
|
97
98
|
* which we can incorporate into our task definitions just like any other activities:
|
|
98
99
|
*
|
|
99
100
|
* ```typescript
|
|
100
|
-
* import { Task } from '@serenity-js/core'
|
|
101
|
+
* import { Task, the } from '@serenity-js/core'
|
|
101
102
|
* import { Click, Enter, Key, Press } from '@serenity-js/web'
|
|
102
103
|
*
|
|
103
104
|
* import { FlightFinder } from './ui/flight-finder'
|
|
104
105
|
*
|
|
105
106
|
* const specifyOriginCity = (originCity: string) =>
|
|
106
|
-
* Task.where(`#actor specifies origin city of ${ originCity }`,
|
|
107
|
+
* Task.where(the`#actor specifies origin city of ${ originCity }`,
|
|
107
108
|
* Click.on(FlightFinder.originAirport),
|
|
108
109
|
* Enter.theValue(originCity).into(FlightFinder.originAirport),
|
|
109
110
|
* Press.the(Key.ArrowDown, Key.Enter).into(FlightFinder.originAirport),
|
|
110
111
|
* )
|
|
111
112
|
*
|
|
112
113
|
* const specifyDestinationCity = (destinationCity: string) =>
|
|
113
|
-
* Task.where(`#actor specifies destination city of ${ destinationCity }`,
|
|
114
|
+
* Task.where(the`#actor specifies destination city of ${ destinationCity }`,
|
|
114
115
|
* Click.on(FlightFinder.destinationAirport),
|
|
115
116
|
* Enter.theValue(destinationCity).into(FlightFinder.destinationAirport),
|
|
116
117
|
* Press.the(Key.ArrowDown, Key.Enter).into(FlightFinder.destinationAirport),
|
|
@@ -123,23 +124,23 @@ import { Activity } from './Activity';
|
|
|
123
124
|
* by **extracting a parameterised task**, in this case called `specifyCity`:
|
|
124
125
|
*
|
|
125
126
|
* ```typescript
|
|
126
|
-
* import { Task } from '@serenity-js/core'
|
|
127
|
+
* import { Task, the } from '@serenity-js/core'
|
|
127
128
|
* import { Click, Enter, Key, PageElement, Press } from '@serenity-js/web'
|
|
128
129
|
*
|
|
129
130
|
* import { FlightFinder } from './ui/flight-finder'
|
|
130
131
|
*
|
|
131
132
|
* const specifyOriginCity = (originCity: string) =>
|
|
132
|
-
* Task.where(`#actor specifies origin city of ${ originCity }`,
|
|
133
|
+
* Task.where(the`#actor specifies origin city of ${ originCity }`,
|
|
133
134
|
* specifyCity(originCity, FlightFinder.originAirport)
|
|
134
135
|
* )
|
|
135
136
|
*
|
|
136
137
|
* const specifyDestinationCity = (destinationCity: string) =>
|
|
137
|
-
* Task.where(`#actor specifies destination city of ${ destinationCity }`,
|
|
138
|
+
* Task.where(the`#actor specifies destination city of ${ destinationCity }`,
|
|
138
139
|
* specifyCity(destinationCity, FlightFinder.destinationAirport),
|
|
139
140
|
* )
|
|
140
141
|
*
|
|
141
142
|
* const specifyCity = (cityName: string, widget: PageElement) =>
|
|
142
|
-
* Task.where(`#actor specifies city of ${ cityName } in ${ widget }`,
|
|
143
|
+
* Task.where(the`#actor specifies city of ${ cityName } in ${ widget }`,
|
|
143
144
|
* Click.on(widget),
|
|
144
145
|
* Enter.theValue(cityName).into(widget),
|
|
145
146
|
* Press.the(Key.ArrowDown, Key.Enter).into(widget),
|
|
@@ -179,7 +180,7 @@ export declare abstract class Task extends Activity {
|
|
|
179
180
|
* @param activities
|
|
180
181
|
* A sequence of lower-level activities that constitute this task
|
|
181
182
|
*/
|
|
182
|
-
static where(description: string
|
|
183
|
+
static where(description: Answerable<string>, ...activities: Activity[]): Task;
|
|
183
184
|
/**
|
|
184
185
|
* Instructs the provided {@apilink Actor} to perform this {@apilink Task}.
|
|
185
186
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Task.d.ts","sourceRoot":"","sources":["../../src/screenplay/Task.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"Task.d.ts","sourceRoot":"","sources":["../../src/screenplay/Task.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwKG;AACH,8BAAsB,IAAK,SAAQ,QAAQ;IAEvC;;;;;;;;OAQG;IACH,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,GAAG,UAAU,EAAE,QAAQ,EAAE,GAAG,IAAI;IAM9E;;;;;;;;;OASG;IACH,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;CAC/D"}
|
package/lib/screenplay/Task.js
CHANGED
|
@@ -31,11 +31,11 @@ const Activity_1 = require("./Activity");
|
|
|
31
31
|
* ## Defining a task
|
|
32
32
|
*
|
|
33
33
|
* ```ts
|
|
34
|
-
* import { Answerable, Task,
|
|
34
|
+
* import { Answerable, Task, the } from '@serenity-js/core'
|
|
35
35
|
* import { By, Click, Enter, PageElement, Press, Key } from '@serenity-js/web'
|
|
36
36
|
*
|
|
37
37
|
* const SignIn = (username: Answerable<string>, password: Answerable<string>) =>
|
|
38
|
-
* Task.where(
|
|
38
|
+
* Task.where(the`#actor signs is as ${ username }`,
|
|
39
39
|
* Enter.theValue(username).into(PageElement.located(By.id('username'))),
|
|
40
40
|
* Enter.theValue(password).into(PageElement.located(By.id('password'))),
|
|
41
41
|
* Press.the(Key.Enter),
|
|
@@ -51,11 +51,11 @@ const Activity_1 = require("./Activity");
|
|
|
51
51
|
* but you're not yet sure what activities it will involve.
|
|
52
52
|
*
|
|
53
53
|
* ```ts
|
|
54
|
-
* import { Task } from '@serenity-js/core'
|
|
54
|
+
* import { Task, the } from '@serenity-js/core'
|
|
55
55
|
*
|
|
56
56
|
* const SignUp = () =>
|
|
57
|
-
* Task.where(`#actor signs up for a newsletter`) // no activities provided
|
|
58
|
-
*
|
|
57
|
+
* Task.where(the`#actor signs up for a newsletter`) // no activities provided
|
|
58
|
+
* // => task marked as pending
|
|
59
59
|
* ```
|
|
60
60
|
*
|
|
61
61
|
* ## Composing activities into tasks
|
|
@@ -75,10 +75,10 @@ const Activity_1 = require("./Activity");
|
|
|
75
75
|
* The easiest way to implement such task, and any custom Serenity/JS task for this matter, is to use the {@apilink Task.where} method to compose the lower-level activities:
|
|
76
76
|
*
|
|
77
77
|
* ```typescript
|
|
78
|
-
* import { Task } from '@serenity-js/core'
|
|
78
|
+
* import { Task, the } from '@serenity-js/core'
|
|
79
79
|
*
|
|
80
80
|
* const findFlight = (originCity: string, destinationCity: string) =>
|
|
81
|
-
* Task.where(`#
|
|
81
|
+
* Task.where(the`#actor finds a flight from ${ originCity } to ${ destinationCity }`, // task goal
|
|
82
82
|
* specifyOriginCity(originCity), // activities
|
|
83
83
|
* specifyDestinationCity(originCity),
|
|
84
84
|
* )
|
|
@@ -100,20 +100,20 @@ const Activity_1 = require("./Activity");
|
|
|
100
100
|
* which we can incorporate into our task definitions just like any other activities:
|
|
101
101
|
*
|
|
102
102
|
* ```typescript
|
|
103
|
-
* import { Task } from '@serenity-js/core'
|
|
103
|
+
* import { Task, the } from '@serenity-js/core'
|
|
104
104
|
* import { Click, Enter, Key, Press } from '@serenity-js/web'
|
|
105
105
|
*
|
|
106
106
|
* import { FlightFinder } from './ui/flight-finder'
|
|
107
107
|
*
|
|
108
108
|
* const specifyOriginCity = (originCity: string) =>
|
|
109
|
-
* Task.where(`#actor specifies origin city of ${ originCity }`,
|
|
109
|
+
* Task.where(the`#actor specifies origin city of ${ originCity }`,
|
|
110
110
|
* Click.on(FlightFinder.originAirport),
|
|
111
111
|
* Enter.theValue(originCity).into(FlightFinder.originAirport),
|
|
112
112
|
* Press.the(Key.ArrowDown, Key.Enter).into(FlightFinder.originAirport),
|
|
113
113
|
* )
|
|
114
114
|
*
|
|
115
115
|
* const specifyDestinationCity = (destinationCity: string) =>
|
|
116
|
-
* Task.where(`#actor specifies destination city of ${ destinationCity }`,
|
|
116
|
+
* Task.where(the`#actor specifies destination city of ${ destinationCity }`,
|
|
117
117
|
* Click.on(FlightFinder.destinationAirport),
|
|
118
118
|
* Enter.theValue(destinationCity).into(FlightFinder.destinationAirport),
|
|
119
119
|
* Press.the(Key.ArrowDown, Key.Enter).into(FlightFinder.destinationAirport),
|
|
@@ -126,23 +126,23 @@ const Activity_1 = require("./Activity");
|
|
|
126
126
|
* by **extracting a parameterised task**, in this case called `specifyCity`:
|
|
127
127
|
*
|
|
128
128
|
* ```typescript
|
|
129
|
-
* import { Task } from '@serenity-js/core'
|
|
129
|
+
* import { Task, the } from '@serenity-js/core'
|
|
130
130
|
* import { Click, Enter, Key, PageElement, Press } from '@serenity-js/web'
|
|
131
131
|
*
|
|
132
132
|
* import { FlightFinder } from './ui/flight-finder'
|
|
133
133
|
*
|
|
134
134
|
* const specifyOriginCity = (originCity: string) =>
|
|
135
|
-
* Task.where(`#actor specifies origin city of ${ originCity }`,
|
|
135
|
+
* Task.where(the`#actor specifies origin city of ${ originCity }`,
|
|
136
136
|
* specifyCity(originCity, FlightFinder.originAirport)
|
|
137
137
|
* )
|
|
138
138
|
*
|
|
139
139
|
* const specifyDestinationCity = (destinationCity: string) =>
|
|
140
|
-
* Task.where(`#actor specifies destination city of ${ destinationCity }`,
|
|
140
|
+
* Task.where(the`#actor specifies destination city of ${ destinationCity }`,
|
|
141
141
|
* specifyCity(destinationCity, FlightFinder.destinationAirport),
|
|
142
142
|
* )
|
|
143
143
|
*
|
|
144
144
|
* const specifyCity = (cityName: string, widget: PageElement) =>
|
|
145
|
-
* Task.where(`#actor specifies city of ${ cityName } in ${ widget }`,
|
|
145
|
+
* Task.where(the`#actor specifies city of ${ cityName } in ${ widget }`,
|
|
146
146
|
* Click.on(widget),
|
|
147
147
|
* Enter.theValue(cityName).into(widget),
|
|
148
148
|
* Press.the(Key.ArrowDown, Key.Enter).into(widget),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Task.js","sourceRoot":"","sources":["../../src/screenplay/Task.ts"],"names":[],"mappings":";;;AAAA,sCAAuD;AAEvD,yCAAsC;
|
|
1
|
+
{"version":3,"file":"Task.js","sourceRoot":"","sources":["../../src/screenplay/Task.ts"],"names":[],"mappings":";;;AAAA,sCAAuD;AAEvD,yCAAsC;AAGtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwKG;AACH,MAAsB,IAAK,SAAQ,mBAAQ;IAEvC;;;;;;;;OAQG;IACH,MAAM,CAAC,KAAK,CAAC,WAA+B,EAAE,GAAG,UAAsB;QACnE,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC;YACxB,CAAC,CAAC,IAAI,wBAAwB,CAAC,WAAW,EAAE,UAAU,CAAC;YACvD,CAAC,CAAC,IAAI,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAC9C,CAAC;CAaJ;AA5BD,oBA4BC;AAED;;GAEG;AACH,MAAM,wBAAyB,SAAQ,IAAI;IACc;IAArD,YAAY,WAA+B,EAAU,UAAsB;QACvE,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;QADM,eAAU,GAAV,UAAU,CAAY;IAE3E,CAAC;IAED,SAAS,CAAC,KAAyB;QAC/B,OAAO,KAAK,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;IAChD,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,kBAAmB,SAAQ,IAAI;IACjC,YAAY,WAA+B;QACvC,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,SAAS,CAAC,KAAyB;QAC/B,OAAO,OAAO,CAAC,MAAM,CACjB,IAAI,mCAA0B,CAAC,iBAAkB,IAAI,CAAC,QAAQ,EAAG,gCAAgC,CAAC,CACrG,CAAC;IACN,CAAC;CACJ"}
|