import { Answerable , AnswersQuestions , Question , UsesAbilities } from '@serenity-js/core' ; import { formatted } from '@serenity-js/core/lib/io' ; import { BrowseTheWeb } from '../abilities' ; desc example example example extends serenity-js see BrowseTheWeb export class ProtractorParam < T = any > extends Question < Promise < T > > { desc param { serenity-js returns { ProtractorParam < R > } static called < R > ( name ) { return new ProtractorParam < R > ( name ) ; } param { serenity-js constructor ( private readonly name ) { super ( formatted `the ${ name } param specified in Protractor config` ) ; } desc Makes the provided  {@link @serenity-js/core/lib/screenplay/actor~Actor} *  answer this  {@link @serenity-js/core/lib/screenplay~Question} .
     *
     *  param { AnswersQuestions & UsesAbilities } actor returns { Promise < void > } see {@link @serenity-js/core/lib/screenplay/actor~Actor} see {@link @serenity-js/core/lib/screenplay/actor~AnswersQuestions} see {@link @serenity-js/core/lib/screenplay/actor~UsesAbilities} answeredBy ( actor ) { return actor . answer ( this . name ) . then ( name => BrowseTheWeb . as ( actor ) . param ( name ) ) ; } }