@serenity-js/core
Version:
The core Serenity/JS framework, providing the Screenplay Pattern interfaces, as well as the test reporting and integration infrastructure
86 lines (59 loc) • 5.08 kB
Markdown
# Serenity/JS Core
[](https://badge.fury.io/js/%40serenity-js%2Fcore)
[](https://github.com/serenity-js/serenity-js/actions)
[](https://qlty.sh/gh/serenity-js/projects/serenity-js)
[](https://qlty.sh/gh/serenity-js/projects/serenity-js)
[](https://github.com/serenity-js/serenity-js/graphs/contributors)
[](https://snyk.io/test/npm/@serenity-js/core)
[](https://github.com/serenity-js/serenity-js)
[](https://www.linkedin.com/company/serenity-js)
[](https://www.youtube.com/@serenity-js)
[](https://matrix.to/#/#serenity-js:gitter.im)
[](https://github.com/sponsors/serenity-js)
[`@serenity-js/core`](https://serenity-js.org/api/core/) provides foundational building blocks of the [Serenity/JS](https://serenity-js.org)
ecosystem, enabling clean, expressive, and highly maintainable test automation based on the [Screenplay Pattern](https://serenity-js.org/handbook/design/screenplay-pattern/).
This package provides APIs and extension points used across all [Serenity/JS modules](https://serenity-js.org/api/).
## Features
- **Core APIs** for implementing the [Screenplay Pattern](https://serenity-js.org/handbook/design/screenplay-pattern/) in automated tests.
- **Actor lifecycle and abilities management** for clear, maintainable test orchestration.
- **Flexible integration points** with [test runners](https://serenity-js.org/handbook/test-runners/) and [reporting tools](https://serenity-js.org/handbook/reporting/).
- **TypeScript-first design** with strong typing for safer and more predictable test code.
## Installation
```bash
npm install --save-dev @serenity-js/core
````
See the [Serenity/JS Installation Guide](https://serenity-js.org/handbook/installation/).
## Quick Start
```ts
import { actorCalled } from '@serenity-js/core'
await actorCalled('Alice')
.whoCan(
// Add abilities
)
.attemptsTo(
// Add tasks and interactions
)
```
Explore practical examples and in-depth explanations in the [Serenity/JS Handbook](https://serenity-js.org/handbook/).
## Documentation
- [API Reference](https://serenity-js.org/api/)
- [Screenplay Pattern Guide](https://serenity-js.org/handbook/design/screenplay-pattern/)
- [Serenity/JS Project Templates](https://serenity-js.org/handbook/project-templates/)
- [Tutorial: First Web Scenario](https://serenity-js.org/handbook/tutorials/your-first-web-scenario/)
- [Tutorial: First API Scenario](https://serenity-js.org/handbook/tutorials/your-first-api-scenario/)
## Contributing
Contributions of all kinds are welcome! Get started with the [Contributing Guide](https://serenity-js.org/community/contributing/).
## Community
- [Community Chat](https://matrix.to/#/#serenity-js:gitter.im)
- [Discussions Forum](https://github.com/orgs/serenity-js/discussions)
- Visit the [💡How to... ?](https://github.com/orgs/serenity-js/discussions/categories/how-to) section for answers to common questions
If you enjoy using Serenity/JS, make sure to star ⭐️ [Serenity/JS on GitHub](https://github.com/serenity-js/serenity-js) to help others discover the framework!
## License
The Serenity/JS code base is licensed under the [Apache-2.0](https://opensource.org/license/apache-2-0) license,
while its documentation and the [Serenity/JS Handbook](https://serenity-js.org/handbook/) are licensed under the [Creative Commons BY-NC-SA 4.0 International](https://creativecommons.org/licenses/by-nc-sa/4.0/).
See the [Serenity/JS License](https://serenity-js.org/legal/license/).
## Support
Support ongoing development through [GitHub Sponsors](https://github.com/sponsors/serenity-js). Sponsors gain access to [Serenity/JS Playbooks](https://github.com/serenity-js/playbooks)
and priority help in the [Discussions Forum](https://github.com/orgs/serenity-js/discussions).
For corporate sponsorship or commercial support, please contact [Jan Molak](https://www.linkedin.com/in/janmolak/).
[](https://github.com/sponsors/serenity-js)