Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Serenity Console reporter improvements #2244

Closed
1MateuszKruk opened this issue Feb 19, 2024 · 10 comments
Closed

Serenity Console reporter improvements #2244

1MateuszKruk opened this issue Feb 19, 2024 · 10 comments
Labels
@serenity-js/console-reporter @serenity-js/playwright-test Serenity/JS reporter and test APIs for Playwright Test

Comments

@1MateuszKruk
Copy link
Contributor

What happened?

Hello,

during developement a Typescript's ReferenceError was introduced in the testing project, because of merging two branches issues. Inside Playwright's describe there is a function setting up Actors, but because it was change, error above was introduced.

Because of my policy of keeping reporter output to minimal, I disabled Playwright's line native reporter and left mostly serenity reporters
image

Because of that, test run failed with no tests visible and without any info about the error
image

What did you expect to happen?

I expected to get an error like in Playwright line reporter
image

Node.js version

v18.12.1

Execution environment

No response

How to reproduce the bug.

create something that creates Typescript error inside description group test, but outside test itself, f. ex. add foo()

Serenity/JS version

├─┬ @azure/identity@4.0.0
│ ├─┬ @azure/abort-controller@1.1.0
│ │ └── tslib@2.6.2
│ ├─┬ @azure/core-auth@1.5.0
│ │ ├── @azure/abort-controller@1.1.0 deduped
│ │ ├── @azure/core-util@1.6.1 deduped
│ │ └── tslib@2.6.2
│ ├─┬ @azure/core-client@1.7.3
│ │ ├── @azure/abort-controller@1.1.0 deduped
│ │ ├── @azure/core-auth@1.5.0 deduped
│ │ ├── @azure/core-rest-pipeline@1.13.0 deduped
│ │ ├── @azure/core-tracing@1.0.1 deduped
│ │ ├── @azure/core-util@1.6.1 deduped
│ │ ├── @azure/logger@1.0.4 deduped
│ │ └── tslib@2.6.2
│ ├─┬ @azure/core-rest-pipeline@1.13.0
│ │ ├── @azure/abort-controller@1.1.0 deduped
│ │ ├── @azure/core-auth@1.5.0 deduped
│ │ ├── @azure/core-tracing@1.0.1 deduped
│ │ ├── @azure/core-util@1.6.1 deduped
│ │ ├── @azure/logger@1.0.4 deduped
│ │ ├─┬ http-proxy-agent@5.0.0
│ │ │ ├── @tootallnate/once@2.0.0
│ │ │ ├─┬ agent-base@6.0.2
│ │ │ │ └── debug@4.3.4 deduped
│ │ │ └── debug@4.3.4 deduped
│ │ ├─┬ https-proxy-agent@5.0.1
│ │ │ ├─┬ agent-base@6.0.2
│ │ │ │ └── debug@4.3.4 deduped
│ │ │ └── debug@4.3.4 deduped
│ │ └── tslib@2.6.2
│ ├─┬ @azure/core-tracing@1.0.1
│ │ └── tslib@2.6.2
│ ├─┬ @azure/core-util@1.6.1
│ │ ├── @azure/abort-controller@1.1.0 deduped
│ │ └── tslib@2.6.2
│ ├─┬ @azure/logger@1.0.4
│ │ └── tslib@2.6.2
│ ├─┬ @azure/msal-browser@3.6.0
│ │ └── @azure/msal-common@14.5.0
│ ├─┬ @azure/msal-node@2.6.0
│ │ ├── @azure/msal-common@14.5.0 deduped
│ │ ├─┬ jsonwebtoken@9.0.2
│ │ │ ├─┬ jws@3.2.2
│ │ │ │ ├─┬ jwa@1.4.1
│ │ │ │ │ ├── buffer-equal-constant-time@1.0.1 deduped
│ │ │ │ │ ├── ecdsa-sig-formatter@1.0.11 deduped
│ │ │ │ │ └── safe-buffer@5.1.2 deduped
│ │ │ │ └── safe-buffer@5.1.2 deduped
│ │ │ ├── lodash.includes@4.3.0
│ │ │ ├── lodash.isboolean@3.0.3
│ │ │ ├── lodash.isinteger@4.0.4
│ │ │ ├── lodash.isnumber@3.0.3
│ │ │ ├── lodash.isplainobject@4.0.6
│ │ │ ├── lodash.isstring@4.0.1
│ │ │ ├── lodash.once@4.1.1
│ │ │ ├── ms@2.1.2 deduped
│ │ │ └── semver@7.6.0 deduped
│ │ └── uuid@8.3.2
│ ├── events@3.3.0
│ ├─┬ jws@4.0.0
│ │ ├─┬ jwa@2.0.0
│ │ │ ├── buffer-equal-constant-time@1.0.1
│ │ │ ├─┬ ecdsa-sig-formatter@1.0.11
│ │ │ │ └── safe-buffer@5.1.2 deduped
│ │ │ └── safe-buffer@5.1.2 deduped
│ │ └── safe-buffer@5.1.2
│ ├─┬ open@8.4.2
│ │ ├── define-lazy-prop@2.0.0
│ │ ├── is-docker@2.2.1
│ │ └─┬ is-wsl@2.2.0
│ │   └── is-docker@2.2.1 deduped
│ ├── stoppable@1.1.0
│ └── tslib@2.6.2
├─┬ @azure/keyvault-secrets@4.7.0
│ ├── @azure/abort-controller@1.1.0 deduped
│ ├── @azure/core-auth@1.5.0 deduped
│ ├── @azure/core-client@1.7.3 deduped
│ ├─┬ @azure/core-http-compat@1.3.0
│ │ ├── @azure/abort-controller@1.1.0 deduped
│ │ ├── @azure/core-client@1.7.3 deduped
│ │ └── @azure/core-rest-pipeline@1.13.0 deduped
│ ├─┬ @azure/core-lro@2.5.4
│ │ ├── @azure/abort-controller@1.1.0 deduped
│ │ ├── @azure/core-util@1.6.1 deduped
│ │ ├── @azure/logger@1.0.4 deduped
│ │ └── tslib@2.6.2
│ ├─┬ @azure/core-paging@1.5.0
│ │ └── tslib@2.6.2
│ ├── @azure/core-rest-pipeline@1.13.0 deduped
│ ├── @azure/core-tracing@1.0.1 deduped
│ ├── @azure/core-util@1.6.1 deduped
│ ├── @azure/logger@1.0.4 deduped
│ └── tslib@2.6.2
├─┬ @elastic/elasticsearch@7.17.11-patch.1
│ ├─┬ debug@4.3.4
│ │ └── ms@2.1.2
│ ├── hpagent@0.1.2
│ ├── ms@2.1.3
│ └── secure-json-parse@2.7.0
├─┬ @playwright/test@1.41.2
│ └─┬ playwright@1.41.2
│   ├── UNMET OPTIONAL DEPENDENCY fsevents@2.3.2
│   └── playwright-core@1.41.2 deduped
├─┬ @serenity-js/assertions@3.18.0
│ ├── @serenity-js/core@3.18.0 deduped
│ └── tiny-types@1.21.0
├─┬ @serenity-js/console-reporter@3.18.0
│ ├── @serenity-js/core@3.18.0 deduped
│ ├─┬ chalk@4.1.2
│ │ ├─┬ ansi-styles@4.3.0
│ │ │ └─┬ color-convert@2.0.1
│ │ │   └── color-name@1.1.4
│ │ └─┬ supports-color@7.2.0
│ │   └── has-flag@4.0.0
│ └── tiny-types@1.21.0 deduped
├─┬ @serenity-js/core@3.18.0
│ ├─┬ @paralleldrive/cuid2@2.2.2
│ │ └── @noble/hashes@1.3.2
│ ├── chalk@4.1.2 deduped
│ ├── diff@5.2.0
│ ├─┬ error-stack-parser@2.1.4
│ │ └── stackframe@1.3.4
│ ├─┬ fast-glob@3.3.2
│ │ ├── @nodelib/fs.stat@2.0.5
│ │ ├── @nodelib/fs.walk@1.2.8 deduped
│ │ ├─┬ glob-parent@5.1.2
│ │ │ └── is-glob@4.0.3 deduped
│ │ ├── merge2@1.4.1
│ │ └─┬ micromatch@4.0.5
│ │   ├─┬ braces@3.0.2
│ │   │ └─┬ fill-range@7.0.1
│ │   │   └─┬ to-regex-range@5.0.1
│ │   │     └── is-number@7.0.0
│ │   └── picomatch@2.3.1
│ ├─┬ filenamify@4.3.0
│ │ ├── filename-reserved-regex@2.0.0
│ │ ├─┬ strip-outer@1.0.1
│ │ │ └── escape-string-regexp@1.0.5
│ │ └─┬ trim-repeated@1.0.0
│ │   └── escape-string-regexp@1.0.5
│ ├── graceful-fs@4.2.11
│ ├─┬ semver@7.6.0
│ │ └─┬ lru-cache@6.0.0
│ │   └── yallist@4.0.0
│ ├── tiny-types@1.21.0 deduped
│ ├── upath@2.0.1
│ └─┬ validate-npm-package-name@5.0.0
│   └─┬ builtins@5.0.1
│     └── semver@7.6.0 deduped
├─┬ @serenity-js/playwright-test@3.18.0
│ ├── @playwright/test@1.41.2 deduped
│ ├── @serenity-js/core@3.18.0 deduped
│ ├── @serenity-js/playwright@3.18.0 deduped
│ ├─┬ @serenity-js/rest@3.18.0
│ │ ├── @serenity-js/core@3.18.0 deduped
│ │ ├─┬ agent-base@7.1.0
│ │ │ └── debug@4.3.4 deduped
│ │ ├─┬ axios@1.6.7
│ │ │ ├── follow-redirects@1.15.4 deduped
│ │ │ ├─┬ form-data@4.0.0
│ │ │ │ ├── asynckit@0.4.0
│ │ │ │ ├─┬ combined-stream@1.0.8
│ │ │ │ │ └── delayed-stream@1.0.0
│ │ │ │ └─┬ mime-types@2.1.35
│ │ │ │   └── mime-db@1.52.0
│ │ │ └── proxy-from-env@1.1.0 deduped
│ │ ├─┬ http-proxy-agent@7.0.2
│ │ │ ├── agent-base@7.1.0 deduped
│ │ │ └── debug@4.3.4 deduped
│ │ ├─┬ https-proxy-agent@7.0.4
│ │ │ ├── agent-base@7.1.0 deduped
│ │ │ └── debug@4.3.4 deduped
│ │ ├── lru-cache@10.2.0
│ │ └── proxy-from-env@1.1.0
│ ├── @serenity-js/web@3.18.0 deduped
│ ├── deepmerge@4.3.1
│ └── tiny-types@1.21.0 deduped
├─┬ @serenity-js/playwright@3.18.0
│ ├── @serenity-js/core@3.18.0 deduped
│ ├── @serenity-js/web@3.18.0 deduped
│ ├── playwright-core@1.41.2
│ └── tiny-types@1.21.0 deduped
├─┬ @serenity-js/web@3.18.0
│ ├── @serenity-js/assertions@3.18.0 deduped
│ ├── @serenity-js/core@3.18.0 deduped
│ └── tiny-types@1.21.0 deduped
├─┬ @types/nodemailer@6.4.9
│ └── @types/node@18.8.3
├── @types/retry@0.12.2
├── @types/uuid@9.0.3
├─┬ @typescript-eslint/eslint-plugin@5.60.1
│ ├── @eslint-community/regexpp@4.8.0
│ ├── @typescript-eslint/parser@5.60.1 deduped
│ ├─┬ @typescript-eslint/scope-manager@5.60.1
│ │ ├── @typescript-eslint/types@5.60.1 deduped
│ │ └─┬ @typescript-eslint/visitor-keys@5.60.1
│ │   ├── @typescript-eslint/types@5.60.1 deduped
│ │   └── eslint-visitor-keys@3.4.3 deduped
│ ├─┬ @typescript-eslint/type-utils@5.60.1
│ │ ├── @typescript-eslint/typescript-estree@5.60.1 deduped
│ │ ├── @typescript-eslint/utils@5.60.1 deduped
│ │ ├── debug@4.3.4 deduped
│ │ ├── eslint@8.48.0 deduped
│ │ └── tsutils@3.21.0 deduped
│ ├─┬ @typescript-eslint/utils@5.60.1
│ │ ├── @eslint-community/eslint-utils@4.4.0 deduped
│ │ ├── @types/json-schema@7.0.12
│ │ ├── @types/semver@7.5.0
│ │ ├── @typescript-eslint/scope-manager@5.60.1 deduped
│ │ ├── @typescript-eslint/types@5.60.1 deduped
│ │ ├── @typescript-eslint/typescript-estree@5.60.1 deduped
│ │ ├─┬ eslint-scope@5.1.1
│ │ │ ├── esrecurse@4.3.0 deduped
│ │ │ └── estraverse@4.3.0
│ │ ├── eslint@8.48.0 deduped
│ │ └── semver@7.6.0 deduped
│ ├── debug@4.3.4 deduped
│ ├── eslint@8.48.0 deduped
│ ├── grapheme-splitter@1.0.4
│ ├── ignore@5.2.0
│ ├── natural-compare-lite@1.4.0
│ ├── semver@7.6.0 deduped
│ └─┬ tsutils@3.21.0
│   ├── tslib@1.14.1
│   └── typescript@5.2.2 deduped
├─┬ @typescript-eslint/parser@5.60.1
│ ├── @typescript-eslint/scope-manager@5.60.1 deduped
│ ├── @typescript-eslint/types@5.60.1
│ ├─┬ @typescript-eslint/typescript-estree@5.60.1
│ │ ├── @typescript-eslint/types@5.60.1 deduped
│ │ ├── @typescript-eslint/visitor-keys@5.60.1 deduped
│ │ ├── debug@4.3.4 deduped
│ │ ├─┬ globby@11.1.0
│ │ │ ├── array-union@2.1.0
│ │ │ ├─┬ dir-glob@3.0.1
│ │ │ │ └── path-type@4.0.0
│ │ │ ├── fast-glob@3.3.2 deduped
│ │ │ ├── ignore@5.2.0 deduped
│ │ │ ├── merge2@1.4.1 deduped
│ │ │ └── slash@3.0.0
│ │ ├── is-glob@4.0.3 deduped
│ │ ├── semver@7.6.0 deduped
│ │ └── tsutils@3.21.0 deduped
│ ├── debug@4.3.4 deduped
│ └── eslint@8.48.0 deduped
├── dotenv@16.3.1
├─┬ eslint-config-airbnb-typescript@17.1.0
│ ├── @typescript-eslint/eslint-plugin@5.60.1 deduped
│ ├── @typescript-eslint/parser@5.60.1 deduped
│ ├─┬ eslint-config-airbnb-base@15.0.0
│ │ ├── confusing-browser-globals@1.0.11
│ │ ├── eslint-plugin-import@2.28.1 deduped
│ │ ├── eslint@8.48.0 deduped
│ │ ├── object.assign@4.1.4 deduped
│ │ ├── object.entries@1.1.6 deduped
│ │ └── semver@6.3.1
│ ├── eslint-plugin-import@2.28.1 deduped
│ └── eslint@8.48.0 deduped
├─┬ eslint-config-airbnb@19.0.4
│ ├── eslint-config-airbnb-base@15.0.0 deduped
│ ├── eslint-plugin-import@2.28.1 deduped
│ ├── eslint-plugin-jsx-a11y@6.7.1 deduped
│ ├── eslint-plugin-react-hooks@4.6.0 deduped
│ ├── eslint-plugin-react@7.33.2 deduped
│ ├── eslint@8.48.0 deduped
│ ├─┬ object.assign@4.1.4
│ │ ├─┬ call-bind@1.0.2
│ │ │ ├── function-bind@1.1.1 deduped
│ │ │ └── get-intrinsic@1.2.1 deduped
│ │ ├─┬ define-properties@1.2.0
│ │ │ ├── has-property-descriptors@1.0.0 deduped
│ │ │ └── object-keys@1.1.1 deduped
│ │ ├── has-symbols@1.0.3
│ │ └── object-keys@1.1.1
│ └─┬ object.entries@1.1.6
│   ├── call-bind@1.0.2 deduped
│   ├── define-properties@1.2.0 deduped
│   └─┬ es-abstract@1.22.1
│     ├─┬ array-buffer-byte-length@1.0.0
│     │ ├── call-bind@1.0.2 deduped
│     │ └── is-array-buffer@3.0.2 deduped
│     ├─┬ arraybuffer.prototype.slice@1.0.1
│     │ ├── array-buffer-byte-length@1.0.0 deduped
│     │ ├── call-bind@1.0.2 deduped
│     │ ├── define-properties@1.2.0 deduped
│     │ ├── get-intrinsic@1.2.1 deduped
│     │ ├── is-array-buffer@3.0.2 deduped
│     │ └── is-shared-array-buffer@1.0.2 deduped
│     ├── available-typed-arrays@1.0.5
│     ├── call-bind@1.0.2 deduped
│     ├── es-set-tostringtag@2.0.1 deduped
│     ├─┬ es-to-primitive@1.2.1
│     │ ├── is-callable@1.2.7 deduped
│     │ ├─┬ is-date-object@1.0.5
│     │ │ └── has-tostringtag@1.0.0 deduped
│     │ └─┬ is-symbol@1.0.4
│     │   └── has-symbols@1.0.3 deduped
│     ├─┬ function.prototype.name@1.1.5
│     │ ├── call-bind@1.0.2 deduped
│     │ ├── define-properties@1.2.0 deduped
│     │ ├── es-abstract@1.22.1 deduped
│     │ └── functions-have-names@1.2.3 deduped
│     ├── get-intrinsic@1.2.1 deduped
│     ├─┬ get-symbol-description@1.0.0
│     │ ├── call-bind@1.0.2 deduped
│     │ └── get-intrinsic@1.2.1 deduped
│     ├── globalthis@1.0.3 deduped
│     ├─┬ gopd@1.0.1
│     │ └── get-intrinsic@1.2.1 deduped
│     ├── has-property-descriptors@1.0.0 deduped
│     ├── has-proto@1.0.1 deduped
│     ├── has-symbols@1.0.3 deduped
│     ├── has@1.0.3 deduped
│     ├── internal-slot@1.0.5 deduped
│     ├─┬ is-array-buffer@3.0.2
│     │ ├── call-bind@1.0.2 deduped
│     │ ├── get-intrinsic@1.2.1 deduped
│     │ └── is-typed-array@1.1.12 deduped
│     ├── is-callable@1.2.7
│     ├── is-negative-zero@2.0.2
│     ├─┬ is-regex@1.1.4
│     │ ├── call-bind@1.0.2 deduped
│     │ └── has-tostringtag@1.0.0 deduped
│     ├─┬ is-shared-array-buffer@1.0.2
│     │ └── call-bind@1.0.2 deduped
│     ├── is-string@1.0.7 deduped
│     ├─┬ is-typed-array@1.1.12
│     │ └── which-typed-array@1.1.11 deduped
│     ├─┬ is-weakref@1.0.2
│     │ └── call-bind@1.0.2 deduped
│     ├── object-inspect@1.12.3
│     ├── object-keys@1.1.1 deduped
│     ├── object.assign@4.1.4 deduped
│     ├── regexp.prototype.flags@1.5.0 deduped
│     ├── safe-array-concat@1.0.0 deduped
│     ├─┬ safe-regex-test@1.0.0
│     │ ├── call-bind@1.0.2 deduped
│     │ ├── get-intrinsic@1.2.1 deduped
│     │ └── is-regex@1.1.4 deduped
│     ├─┬ string.prototype.trim@1.2.7
│     │ ├── call-bind@1.0.2 deduped
│     │ ├── define-properties@1.2.0 deduped
│     │ └── es-abstract@1.22.1 deduped
│     ├─┬ string.prototype.trimend@1.0.6
│     │ ├── call-bind@1.0.2 deduped
│     │ ├── define-properties@1.2.0 deduped
│     │ └── es-abstract@1.22.1 deduped
│     ├─┬ string.prototype.trimstart@1.0.7
│     │ ├── call-bind@1.0.2 deduped
│     │ ├── define-properties@1.2.0 deduped
│     │ └── es-abstract@1.22.1 deduped
│     ├─┬ typed-array-buffer@1.0.0
│     │ ├── call-bind@1.0.2 deduped
│     │ ├── get-intrinsic@1.2.1 deduped
│     │ └── is-typed-array@1.1.12 deduped
│     ├─┬ typed-array-byte-length@1.0.0
│     │ ├── call-bind@1.0.2 deduped
│     │ ├─┬ for-each@0.3.3
│     │ │ └── is-callable@1.2.7 deduped
│     │ ├── has-proto@1.0.1 deduped
│     │ └── is-typed-array@1.1.12 deduped
│     ├─┬ typed-array-byte-offset@1.0.0
│     │ ├── available-typed-arrays@1.0.5 deduped
│     │ ├── call-bind@1.0.2 deduped
│     │ ├── for-each@0.3.3 deduped
│     │ ├── has-proto@1.0.1 deduped
│     │ └── is-typed-array@1.1.12 deduped
│     ├─┬ typed-array-length@1.0.4
│     │ ├── call-bind@1.0.2 deduped
│     │ ├── for-each@0.3.3 deduped
│     │ └── is-typed-array@1.1.12 deduped
│     ├─┬ unbox-primitive@1.0.2
│     │ ├── call-bind@1.0.2 deduped
│     │ ├── has-bigints@1.0.2
│     │ ├── has-symbols@1.0.3 deduped
│     │ └─┬ which-boxed-primitive@1.0.2
│     │   ├─┬ is-bigint@1.0.4
│     │   │ └── has-bigints@1.0.2 deduped
│     │   ├─┬ is-boolean-object@1.1.2
│     │   │ ├── call-bind@1.0.2 deduped
│     │   │ └── has-tostringtag@1.0.0 deduped
│     │   ├─┬ is-number-object@1.0.7
│     │   │ └── has-tostringtag@1.0.0 deduped
│     │   ├── is-string@1.0.7 deduped
│     │   └── is-symbol@1.0.4 deduped
│     └─┬ which-typed-array@1.1.11
│       ├── available-typed-arrays@1.0.5 deduped
│       ├── call-bind@1.0.2 deduped
│       ├── for-each@0.3.3 deduped
│       ├── gopd@1.0.1 deduped
│       └── has-tostringtag@1.0.0 deduped
├─┬ eslint-config-prettier@8.8.0
│ └── eslint@8.48.0 deduped
├─┬ eslint-plugin-import@2.28.1
│ ├─┬ array-includes@3.1.6
│ │ ├── call-bind@1.0.2 deduped
│ │ ├── define-properties@1.2.0 deduped
│ │ ├── es-abstract@1.22.1 deduped
│ │ ├─┬ get-intrinsic@1.2.1
│ │ │ ├── function-bind@1.1.1 deduped
│ │ │ ├── has-proto@1.0.1 deduped
│ │ │ ├── has-symbols@1.0.3 deduped
│ │ │ └── has@1.0.3 deduped
│ │ └─┬ is-string@1.0.7
│ │   └─┬ has-tostringtag@1.0.0
│ │     └── has-symbols@1.0.3 deduped
│ ├─┬ array.prototype.findlastindex@1.2.3
│ │ ├── call-bind@1.0.2 deduped
│ │ ├── define-properties@1.2.0 deduped
│ │ ├── es-abstract@1.22.1 deduped
│ │ ├─┬ es-shim-unscopables@1.0.0
│ │ │ └── has@1.0.3 deduped
│ │ └── get-intrinsic@1.2.1 deduped
│ ├─┬ array.prototype.flat@1.3.1
│ │ ├── call-bind@1.0.2 deduped
│ │ ├── define-properties@1.2.0 deduped
│ │ ├── es-abstract@1.22.1 deduped
│ │ └── es-shim-unscopables@1.0.0 deduped
│ ├─┬ array.prototype.flatmap@1.3.1
│ │ ├── call-bind@1.0.2 deduped
│ │ ├── define-properties@1.2.0 deduped
│ │ ├── es-abstract@1.22.1 deduped
│ │ └── es-shim-unscopables@1.0.0 deduped
│ ├─┬ debug@3.2.7
│ │ └── ms@2.1.2 deduped
│ ├─┬ doctrine@2.1.0
│ │ └── esutils@2.0.3 deduped
│ ├─┬ eslint-import-resolver-node@0.3.7
│ │ ├─┬ debug@3.2.7
│ │ │ └── ms@2.1.2 deduped
│ │ ├── is-core-module@2.13.0 deduped
│ │ └─┬ resolve@1.22.1
│ │   ├── is-core-module@2.13.0 deduped
│ │   ├── path-parse@1.0.7 deduped
│ │   └── supports-preserve-symlinks-flag@1.0.0 deduped
│ ├─┬ eslint-module-utils@2.8.0
│ │ └─┬ debug@3.2.7
│ │   └── ms@2.1.2 deduped
│ ├── eslint@8.48.0 deduped
│ ├─┬ has@1.0.3
│ │ └── function-bind@1.1.1
│ ├─┬ is-core-module@2.13.0
│ │ └── has@1.0.3 deduped
│ ├─┬ is-glob@4.0.3
│ │ └── is-extglob@2.1.1
│ ├─┬ minimatch@3.1.2
│ │ └─┬ brace-expansion@1.1.11
│ │   ├── balanced-match@1.0.2
│ │   └── concat-map@0.0.1
│ ├─┬ object.fromentries@2.0.6
│ │ ├── call-bind@1.0.2 deduped
│ │ ├── define-properties@1.2.0 deduped
│ │ └── es-abstract@1.22.1 deduped
│ ├─┬ object.groupby@1.0.1
│ │ ├── call-bind@1.0.2 deduped
│ │ ├── define-properties@1.2.0 deduped
│ │ ├── es-abstract@1.22.1 deduped
│ │ └── get-intrinsic@1.2.1 deduped
│ ├─┬ object.values@1.1.6
│ │ ├── call-bind@1.0.2 deduped
│ │ ├── define-properties@1.2.0 deduped
│ │ └── es-abstract@1.22.1 deduped
│ ├── semver@6.3.1
│ └─┬ tsconfig-paths@3.14.2
│   ├── @types/json5@0.0.29
│   ├─┬ json5@1.0.2
│   │ └── minimist@1.2.6 deduped
│   ├── minimist@1.2.6 deduped
│   └── strip-bom@3.0.0
├─┬ eslint-plugin-jsx-a11y@6.7.1
│ ├─┬ @babel/runtime@7.22.15
│ │ └── regenerator-runtime@0.14.0
│ ├─┬ aria-query@5.3.0
│ │ └── dequal@2.0.3
│ ├── array-includes@3.1.6 deduped
│ ├── array.prototype.flatmap@1.3.1 deduped
│ ├── ast-types-flow@0.0.7
│ ├── axe-core@4.7.2
│ ├─┬ axobject-query@3.2.1
│ │ └── dequal@2.0.3 deduped
│ ├── damerau-levenshtein@1.0.8
│ ├── emoji-regex@9.2.2
│ ├── eslint@8.48.0 deduped
│ ├── has@1.0.3 deduped
│ ├─┬ jsx-ast-utils@3.3.4
│ │ ├── array-includes@3.1.6 deduped
│ │ ├── array.prototype.flat@1.3.1 deduped
│ │ ├── object.assign@4.1.4 deduped
│ │ └── object.values@1.1.6 deduped
│ ├─┬ language-tags@1.0.5
│ │ └── language-subtag-registry@0.3.22
│ ├── minimatch@3.1.2 deduped
│ ├── object.entries@1.1.6 deduped
│ ├── object.fromentries@2.0.6 deduped
│ └── semver@6.3.1
├─┬ eslint-plugin-react-hooks@4.6.0
│ └── eslint@8.48.0 deduped
├─┬ eslint-plugin-react@7.33.2
│ ├── array-includes@3.1.6 deduped
│ ├── array.prototype.flatmap@1.3.1 deduped
│ ├─┬ array.prototype.tosorted@1.1.1
│ │ ├── call-bind@1.0.2 deduped
│ │ ├── define-properties@1.2.0 deduped
│ │ ├── es-abstract@1.22.1 deduped
│ │ ├── es-shim-unscopables@1.0.0 deduped
│ │ └── get-intrinsic@1.2.1 deduped
│ ├─┬ doctrine@2.1.0
│ │ └── esutils@2.0.3 deduped
│ ├─┬ es-iterator-helpers@1.0.14
│ │ ├─┬ asynciterator.prototype@1.0.0
│ │ │ └── has-symbols@1.0.3 deduped
│ │ ├── call-bind@1.0.2 deduped
│ │ ├── define-properties@1.2.0 deduped
│ │ ├── es-abstract@1.22.1 deduped
│ │ ├─┬ es-set-tostringtag@2.0.1
│ │ │ ├── get-intrinsic@1.2.1 deduped
│ │ │ ├── has-tostringtag@1.0.0 deduped
│ │ │ └── has@1.0.3 deduped
│ │ ├── function-bind@1.1.1 deduped
│ │ ├── get-intrinsic@1.2.1 deduped
│ │ ├─┬ globalthis@1.0.3
│ │ │ └── define-properties@1.2.0 deduped
│ │ ├─┬ has-property-descriptors@1.0.0
│ │ │ └── get-intrinsic@1.2.1 deduped
│ │ ├── has-proto@1.0.1
│ │ ├── has-symbols@1.0.3 deduped
│ │ ├─┬ internal-slot@1.0.5
│ │ │ ├── get-intrinsic@1.2.1 deduped
│ │ │ ├── has@1.0.3 deduped
│ │ │ └── side-channel@1.0.4 deduped
│ │ ├─┬ iterator.prototype@1.1.1
│ │ │ ├── define-properties@1.2.0 deduped
│ │ │ ├── get-intrinsic@1.2.1 deduped
│ │ │ ├── has-symbols@1.0.3 deduped
│ │ │ └─┬ reflect.getprototypeof@1.0.4
│ │ │   ├── call-bind@1.0.2 deduped
│ │ │   ├── define-properties@1.2.0 deduped
│ │ │   ├── es-abstract@1.22.1 deduped
│ │ │   ├── get-intrinsic@1.2.1 deduped
│ │ │   ├── globalthis@1.0.3 deduped
│ │ │   └─┬ which-builtin-type@1.1.3
│ │ │     ├── function.prototype.name@1.1.5 deduped
│ │ │     ├── has-tostringtag@1.0.0 deduped
│ │ │     ├─┬ is-async-function@2.0.0
│ │ │     │ └── has-tostringtag@1.0.0 deduped
│ │ │     ├── is-date-object@1.0.5 deduped
│ │ │     ├─┬ is-finalizationregistry@1.0.2
│ │ │     │ └── call-bind@1.0.2 deduped
│ │ │     ├─┬ is-generator-function@1.0.10
│ │ │     │ └── has-tostringtag@1.0.0 deduped
│ │ │     ├── is-regex@1.1.4 deduped
│ │ │     ├── is-weakref@1.0.2 deduped
│ │ │     ├── isarray@2.0.5 deduped
│ │ │     ├── which-boxed-primitive@1.0.2 deduped
│ │ │     ├─┬ which-collection@1.0.1
│ │ │     │ ├── is-map@2.0.2
│ │ │     │ ├── is-set@2.0.2
│ │ │     │ ├── is-weakmap@2.0.1
│ │ │     │ └─┬ is-weakset@2.0.2
│ │ │     │   ├── call-bind@1.0.2 deduped
│ │ │     │   └── get-intrinsic@1.2.1 deduped
│ │ │     └── which-typed-array@1.1.11 deduped
│ │ └─┬ safe-array-concat@1.0.0
│ │   ├── call-bind@1.0.2 deduped
│ │   ├── get-intrinsic@1.2.1 deduped
│ │   ├── has-symbols@1.0.3 deduped
│ │   └── isarray@2.0.5
│ ├── eslint@8.48.0 deduped
│ ├── estraverse@5.3.0
│ ├── jsx-ast-utils@3.3.4 deduped
│ ├── minimatch@3.1.2 deduped
│ ├── object.entries@1.1.6 deduped
│ ├── object.fromentries@2.0.6 deduped
│ ├─┬ object.hasown@1.1.2
│ │ ├── define-properties@1.2.0 deduped
│ │ └── es-abstract@1.22.1 deduped
│ ├── object.values@1.1.6 deduped
│ ├─┬ prop-types@15.8.1
│ │ ├─┬ loose-envify@1.4.0
│ │ │ └── js-tokens@4.0.0
│ │ ├── object-assign@4.1.1
│ │ └── react-is@16.13.1
│ ├─┬ resolve@2.0.0-next.4
│ │ ├── is-core-module@2.13.0 deduped
│ │ ├── path-parse@1.0.7
│ │ └── supports-preserve-symlinks-flag@1.0.0
│ ├── semver@6.3.1
│ └─┬ string.prototype.matchall@4.0.8
│   ├── call-bind@1.0.2 deduped
│   ├── define-properties@1.2.0 deduped
│   ├── es-abstract@1.22.1 deduped
│   ├── get-intrinsic@1.2.1 deduped
│   ├── has-symbols@1.0.3 deduped
│   ├── internal-slot@1.0.5 deduped
│   ├─┬ regexp.prototype.flags@1.5.0
│   │ ├── call-bind@1.0.2 deduped
│   │ ├── define-properties@1.2.0 deduped
│   │ └── functions-have-names@1.2.3
│   └─┬ side-channel@1.0.4
│     ├── call-bind@1.0.2 deduped
│     ├── get-intrinsic@1.2.1 deduped
│     └── object-inspect@1.12.3 deduped
├─┬ eslint-plugin-simple-import-sort@10.0.0
│ └── eslint@8.48.0 deduped
├─┬ eslint-plugin-unicorn@11.0.2
│ ├── ci-info@2.0.0
│ ├─┬ clean-regexp@1.0.0
│ │ └── escape-string-regexp@1.0.5
│ ├─┬ eslint-ast-utils@1.1.0
│ │ ├── lodash.get@4.4.2
│ │ └── lodash.zip@4.2.0
│ ├── eslint@8.48.0 deduped
│ ├── import-modules@1.1.0
│ ├── lodash.camelcase@4.3.0
│ ├── lodash.defaultsdeep@4.6.1
│ ├── lodash.kebabcase@4.1.1
│ ├── lodash.snakecase@4.1.1
│ ├── lodash.topairs@4.3.0
│ ├── lodash.upperfirst@4.3.1
│ ├─┬ read-pkg@5.2.0
│ │ ├── @types/normalize-package-data@2.4.1
│ │ ├─┬ normalize-package-data@2.5.0
│ │ │ ├── hosted-git-info@2.8.9
│ │ │ ├── resolve@1.22.1 deduped
│ │ │ ├── semver@5.7.2
│ │ │ └─┬ validate-npm-package-license@3.0.4
│ │ │   ├─┬ spdx-correct@3.2.0
│ │ │   │ ├── spdx-expression-parse@3.0.1 deduped
│ │ │   │ └── spdx-license-ids@3.0.13
│ │ │   └─┬ spdx-expression-parse@3.0.1
│ │ │     ├── spdx-exceptions@2.3.0
│ │ │     └── spdx-license-ids@3.0.13 deduped
│ │ ├─┬ parse-json@5.2.0
│ │ │ ├─┬ @babel/code-frame@7.22.5
│ │ │ │ └─┬ @babel/highlight@7.22.5
│ │ │ │   ├── @babel/helper-validator-identifier@7.22.5
│ │ │ │   ├─┬ chalk@2.4.2
│ │ │ │   │ ├─┬ ansi-styles@3.2.1
│ │ │ │   │ │ └─┬ color-convert@1.9.3
│ │ │ │   │ │   └── color-name@1.1.3
│ │ │ │   │ ├── escape-string-regexp@1.0.5
│ │ │ │   │ └─┬ supports-color@5.5.0
│ │ │ │   │   └── has-flag@3.0.0
│ │ │ │   └── js-tokens@4.0.0 deduped
│ │ │ ├─┬ error-ex@1.3.2
│ │ │ │ └── is-arrayish@0.2.1
│ │ │ ├── json-parse-even-better-errors@2.3.1
│ │ │ └── lines-and-columns@1.2.4
│ │ └── type-fest@0.6.0
│ ├── regexpp@3.2.0
│ ├── reserved-words@0.1.2
│ ├─┬ safe-regex@2.1.1
│ │ └── regexp-tree@0.1.24
│ └── semver@6.3.1
├─┬ eslint-plugin-unused-imports@2.0.0
│ ├── @typescript-eslint/eslint-plugin@5.60.1 deduped
│ ├── eslint-rule-composer@0.3.0
│ └── eslint@8.48.0 deduped
├─┬ eslint@8.48.0
│ ├─┬ @eslint-community/eslint-utils@4.4.0
│ │ ├── eslint-visitor-keys@3.4.3 deduped
│ │ └── eslint@8.48.0 deduped
│ ├── @eslint-community/regexpp@4.8.0 deduped
│ ├─┬ @eslint/eslintrc@2.1.2
│ │ ├── ajv@6.12.6 deduped
│ │ ├── debug@4.3.4 deduped
│ │ ├── espree@9.6.1 deduped
│ │ ├── globals@13.21.0 deduped
│ │ ├── ignore@5.2.0 deduped
│ │ ├─┬ import-fresh@3.3.0
│ │ │ ├─┬ parent-module@1.0.1
│ │ │ │ └── callsites@3.1.0
│ │ │ └── resolve-from@4.0.0
│ │ ├── js-yaml@4.1.0 deduped
│ │ ├── minimatch@3.1.2 deduped
│ │ └── strip-json-comments@3.1.1
│ ├── @eslint/js@8.48.0
│ ├─┬ @humanwhocodes/config-array@0.11.11
│ │ ├── @humanwhocodes/object-schema@1.2.1
│ │ ├── debug@4.3.4 deduped
│ │ └── minimatch@3.1.2 deduped
│ ├── @humanwhocodes/module-importer@1.0.1
│ ├─┬ @nodelib/fs.walk@1.2.8
│ │ ├─┬ @nodelib/fs.scandir@2.1.5
│ │ │ ├── @nodelib/fs.stat@2.0.5 deduped
│ │ │ └─┬ run-parallel@1.2.0
│ │ │   └── queue-microtask@1.2.3
│ │ └─┬ fastq@1.13.0
│ │   └── reusify@1.0.4
│ ├─┬ ajv@6.12.6
│ │ ├── fast-deep-equal@3.1.3 deduped
│ │ ├── fast-json-stable-stringify@2.1.0
│ │ ├── json-schema-traverse@0.4.1
│ │ └─┬ uri-js@4.4.1
│ │   └── punycode@2.3.0
│ ├── chalk@4.1.2 deduped
│ ├─┬ cross-spawn@7.0.3
│ │ ├── path-key@3.1.1
│ │ ├─┬ shebang-command@2.0.0
│ │ │ └── shebang-regex@3.0.0
│ │ └─┬ which@2.0.2
│ │   └── isexe@2.0.0
│ ├── debug@4.3.4 deduped
│ ├─┬ doctrine@3.0.0
│ │ └── esutils@2.0.3 deduped
│ ├── escape-string-regexp@4.0.0
│ ├─┬ eslint-scope@7.2.2
│ │ ├─┬ esrecurse@4.3.0
│ │ │ └── estraverse@5.3.0
│ │ └── estraverse@5.3.0
│ ├── eslint-visitor-keys@3.4.3
│ ├─┬ espree@9.6.1
│ │ ├─┬ acorn-jsx@5.3.2
│ │ │ └── acorn@8.10.0 deduped
│ │ ├── acorn@8.10.0
│ │ └── eslint-visitor-keys@3.4.3 deduped
│ ├─┬ esquery@1.5.0
│ │ └── estraverse@5.3.0
│ ├── esutils@2.0.3
│ ├── fast-deep-equal@3.1.3
│ ├─┬ file-entry-cache@6.0.1
│ │ └─┬ flat-cache@3.0.4
│ │   ├── flatted@3.2.7
│ │   └─┬ rimraf@3.0.2
│ │     └─┬ glob@7.2.3
│ │       ├── fs.realpath@1.0.0
│ │       ├─┬ inflight@1.0.6
│ │       │ ├── once@1.4.0 deduped
│ │       │ └── wrappy@1.0.2
│ │       ├── inherits@2.0.4
│ │       ├── minimatch@3.1.2 deduped
│ │       ├─┬ once@1.4.0
│ │       │ └── wrappy@1.0.2 deduped
│ │       └── path-is-absolute@1.0.1
│ ├─┬ find-up@5.0.0
│ │ ├─┬ locate-path@6.0.0
│ │ │ └─┬ p-locate@5.0.0
│ │ │   └─┬ p-limit@3.1.0
│ │ │     └── yocto-queue@0.1.0
│ │ └── path-exists@4.0.0
│ ├─┬ glob-parent@6.0.2
│ │ └── is-glob@4.0.3 deduped
│ ├─┬ globals@13.21.0
│ │ └── type-fest@0.20.2
│ ├── graphemer@1.4.0
│ ├── ignore@5.2.0 deduped
│ ├── imurmurhash@0.1.4
│ ├── is-glob@4.0.3 deduped
│ ├── is-path-inside@3.0.3
│ ├─┬ js-yaml@4.1.0
│ │ └── argparse@2.0.1
│ ├── json-stable-stringify-without-jsonify@1.0.1
│ ├─┬ levn@0.4.1
│ │ ├── prelude-ls@1.2.1
│ │ └─┬ type-check@0.4.0
│ │   └── prelude-ls@1.2.1 deduped
│ ├── lodash.merge@4.6.2
│ ├── minimatch@3.1.2 deduped
│ ├── natural-compare@1.4.0
│ ├─┬ optionator@0.9.3
│ │ ├── @aashutoshrathi/word-wrap@1.2.6
│ │ ├── deep-is@0.1.4
│ │ ├── fast-levenshtein@2.0.6
│ │ ├── levn@0.4.1 deduped
│ │ ├── prelude-ls@1.2.1 deduped
│ │ └── type-check@0.4.0 deduped
│ ├─┬ strip-ansi@6.0.1
│ │ └── ansi-regex@5.0.1
│ └── text-table@0.2.0
├─┬ http-server@14.1.1
│ ├─┬ basic-auth@2.0.1
│ │ └── safe-buffer@5.1.2 deduped
│ ├── chalk@4.1.2 deduped
│ ├── corser@2.0.1
│ ├── he@1.2.0
│ ├─┬ html-encoding-sniffer@3.0.0
│ │ └─┬ whatwg-encoding@2.0.0
│ │   └─┬ iconv-lite@0.6.3
│ │     └── safer-buffer@2.1.2
│ ├─┬ http-proxy@1.18.1
│ │ ├── eventemitter3@4.0.7
│ │ ├── follow-redirects@1.15.4
│ │ └── requires-port@1.0.0
│ ├── mime@1.6.0
│ ├── minimist@1.2.6
│ ├── opener@1.5.2
│ ├─┬ portfinder@1.0.32
│ │ ├─┬ async@2.6.4
│ │ │ └── lodash@4.17.21
│ │ ├─┬ debug@3.2.7
│ │ │ └── ms@2.1.2 deduped
│ │ └─┬ mkdirp@0.5.6
│ │   └── minimist@1.2.6 deduped
│ ├── secure-compare@3.0.1
│ ├─┬ union@0.5.0
│ │ └─┬ qs@6.11.0
│ │   └── side-channel@1.0.4 deduped
│ └── url-join@4.0.1
├── mkdirp@3.0.1
├── nodemailer@6.9.9
├── npm-failsafe@1.0.0
├─┬ rimraf@5.0.1
│ └─┬ glob@10.2.5
│   ├─┬ foreground-child@3.1.1
│   │ ├── cross-spawn@7.0.3 deduped
│   │ └── signal-exit@4.0.2
│   ├─┬ jackspeak@2.2.0
│   │ ├─┬ @isaacs/cliui@8.0.2
│   │ │ ├─┬ string-width-cjs@npm:string-width@4.2.3
│   │ │ │ ├── emoji-regex@8.0.0
│   │ │ │ ├── is-fullwidth-code-point@3.0.0
│   │ │ │ └── strip-ansi@6.0.1 deduped
│   │ │ ├─┬ string-width@5.1.2
│   │ │ │ ├── eastasianwidth@0.2.0
│   │ │ │ ├── emoji-regex@9.2.2
│   │ │ │ └── strip-ansi@7.0.1 deduped
│   │ │ ├─┬ strip-ansi-cjs@npm:strip-ansi@6.0.1
│   │ │ │ └── ansi-regex@5.0.1 deduped
│   │ │ ├─┬ strip-ansi@7.0.1
│   │ │ │ └── ansi-regex@6.0.1
│   │ │ ├─┬ wrap-ansi-cjs@npm:wrap-ansi@7.0.0
│   │ │ │ ├── ansi-styles@4.3.0 deduped
│   │ │ │ ├─┬ string-width@4.2.3
│   │ │ │ │ ├── emoji-regex@8.0.0 deduped
│   │ │ │ │ ├── is-fullwidth-code-point@3.0.0 deduped
│   │ │ │ │ └── strip-ansi@6.0.1 deduped
│   │ │ │ └── strip-ansi@6.0.1 deduped
│   │ │ └─┬ wrap-ansi@8.1.0
│   │ │   ├── ansi-styles@6.2.1
│   │ │   ├── string-width@5.1.2 deduped
│   │ │   └── strip-ansi@7.0.1 deduped
│   │ └── @pkgjs/parseargs@0.11.0
│   ├─┬ minimatch@9.0.0
│   │ └─┬ brace-expansion@2.0.1
│   │   └── balanced-match@1.0.2 deduped
│   ├── minipass@5.0.0
│   └─┬ path-scurry@1.9.2
│     ├── lru-cache@9.1.1
│     └── minipass@5.0.0 deduped
├── typescript@5.2.2
└── uuid@9.0.0
@1MateuszKruk
Copy link
Contributor Author

And also I think running npm ls --all is kinda too long for an issue 😄

@1MateuszKruk 1MateuszKruk changed the title Serenity Console reporter should report Typescript bugs inside describe group of tests Serenity Console reporter improvements Feb 20, 2024
@1MateuszKruk
Copy link
Contributor Author

1MateuszKruk commented Feb 20, 2024

Another thing I discovered, Serenity reporter leaves ambiguous report when test times out from playwright setup test.
image
This test times out on custom Interaction waiting for invoice, but it's not visible.

Also, @serenity-js/code:StreamReporter doesn't indicate the test was timed out

{"type":"SceneFinishes","event":{"sceneId":"j9eesfa8xwgfoaa2c3ec8hpf","timestamp":"2024-02-20T14:08:43.087Z"}}
{"type":"AsyncOperationAttempted","event":{"correlationId":"fzfrpma1qgycaicdk59qjzpv","description":"Dismissing Steve...","name":"Stage","timestamp":"2024-02-20T14:08:43.104Z"}}

It even seems that reporter labels tests in the same case (interaction is so long that test times out) as execution ignored or failed

@jan-molak
Copy link
Member

Nice catch; thanks for reporting! I'll need to investigate that! (Unless you already have an idea for a fix, in which case PRs are also very welcome)

@1MateuszKruk
Copy link
Contributor Author

I can work on that one in free time, but I don't have any implementation in mind and I'm not doing any cookie-licking, so feel free to investigate that yourself.

@1MateuszKruk
Copy link
Contributor Author

1MateuszKruk commented Feb 22, 2024

Ok, I figured it out (I guess). Turns out that Playwright's wrapper for reporters expects onError method from custom reporter, and that's something SerenityReporterForPlaywrightTest doesn't have.
image

Now to Serenity's part @jan-molak , do you have a reliable way to test serenity's console reporter?

(gonna also change to my main account, I want to have first real contribution well documented on my GH account 😄 )

@jan-molak
Copy link
Member

jan-molak commented Feb 22, 2024

Nice!

OK, so Serenity/JS uses SerenityReporterForPlaywrightTest to extract data from a Playwright Test run -

export class SerenityReporterForPlaywrightTest implements Reporter {

That's where we'd need the onError handler.

However, Serenity/JS also decouples the process of extracting the data from reporting by emitting domain events.

For example, you have a TestRunFinishes and TestRunFinished events, the latter of which could be emitted with an outcome indicating an error.

Playwright docs state that onError is:

Called on some global error, for example unhandled exception in the worker process.

I assume this means that the handler should be invoked at most once.
However, I don't know if Playwright executes both onError and onEnd handlers should a global error occur.

If it does, then onError could remember the error, and then the existing onEnd could emit that, if present.

Regarding testing, you can simulate error conditions and how a global error is picked up by the SerenityReporterForPlaywrightTest using the integration/playwright-test suite.

To test the ConsoleReporter, you can use the specs inside packages/console-reporter

Any questions just let me know! And thanks for offering to help out 👍

@jan-molak jan-molak added the @serenity-js/playwright-test Serenity/JS reporter and test APIs for Playwright Test label Feb 22, 2024
@In1th
Copy link
Contributor

In1th commented Feb 23, 2024

Alright, alright. I decided to create a new Domain Event for that - GlobalExceptionEncountered. I guess it would be clearer in StreamReporter.

I'll try as well your approach with emitting this during onEnd, but...

I wanted to run this to just see how it works, but I can't get it working with my new event type and building throws me an error complaining it doesn't know this type. I couldn't find it on the Contribute docs, any tips? 😄

@jan-molak
Copy link
Member

I couldn't find it on the Contribute docs, any tips?

Haha, sure. You're digging deep into the heart of Serenity/JS :-)

What's the error you're getting? Any stack trace you could share? If you want, feel free to open a draft PR and we can discuss there.

@In1th
Copy link
Contributor

In1th commented Feb 24, 2024

added a draft PR. I'm more of a fan of trying to do and try things several times so I can see what sticks. The problem is that my new Domain Event I created in core package is not recognised by console-reporter package. What should I run to mak those packaged sync between each other?

@jan-molak
Copy link
Member

Fixed by #2252, released in Serenity/JS 3.19.0 🚀

jan-molak added a commit that referenced this issue Mar 2, 2024
… the FileSystem

being able to directly read files from the file system in crew members should enable services like
the ConsoleReporter to display code snippets and will enable refactoring the artifact handling
mechanism in the SerenityBDDReporter

Related tickets: re #2244
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
@serenity-js/console-reporter @serenity-js/playwright-test Serenity/JS reporter and test APIs for Playwright Test
Projects
None yet
Development

No branches or pull requests

3 participants