@img-arena/front-row-seat
v1.51.0
Published
IMG Arena Front Row Seat integration SDK
Downloads
21,882
Readme
Front Row Seat Integration Library
🏌️♀️ 🤼♀️ 🎾
A web based library for handling the integration of the event centres with sportsbooks. The library will initially be tasked with handling the communication between sportsbooks and the event centres app. These communications will predominately be for UI synchronisation, ie. bet slip selections being mirrored in both UIs.
npm i @img-arena/front-row-seat
yarn add @img-arena/front-row-seat
Contributing
yarn
yarn start:dev
Considerations
- changes should be backwards compatible with older versions of the event centre that are using older versions of front-row-seat.js
- if this is not possible, a solid migration plan must be agreed with the rest of FRS
- avoid using dependencies or polyfills that might pollute the global scope (ie: @babel/preset-env) as this has been raised as a security warning by our clients
Testing
There are both unit tests and some integration tests. The testing of iframe's in JSDOM is complicated but possible, so
as it stands cypress is being used to test the iframe side of things (postMessage
).
Note: you'll need to run the dev build each time you run the tests, as the unit tests are using the dist build folder.
To run the unit tests:
yarn test:unit
Integration tests
Start the test site servers (in different consoles), then run the tests:
# terminal one
yarn start:test-site
# terminal two
yarn start:test-site-2
# terminal three
yarn cy
# or you can open the Cypress UI to watch the browser automation run:
yarn cy:open
Debugging
To debug the communication between the parent and the child iframe, you can set the __debug__
property to true when
initialising an event centre or Betlink instance. This will log all messages sent and received along with any other logs that are added.
example:
const eventCentre = eventCentre({
...,
__debug__: true,
})
Publishing
The package is automatically published to the npm registry when PRs are merged to master, the version changes are based on commit message syntax; see below.
Commit Style
This repo follows the Conventional Commit format. This is so that we can automatically figure out what the SemVer release tag should be. Note that commits must be in this format, we use Husky to enforce this.
$ git commit -m "feat(frs-123): added some super cool feature"
Commits and SemVer tags are directly linked, if you want a commit to not be evaluated in whether or not the semver version should change, add " [skip ci]" to the end of the commit message - https://github.blog/changelog/2021-02-08-github-actions-skip-pull-request-and-push-workflows-with-skip-ci/.
Commitzen
This repo is Commitzen compatible, if you wish to use it instead of writing the commit via git commit -m ...
try cz
after git add
.
https://github.com/commitizen/cz-cli#installing-the-command-line-tool