Skip to content

Latest commit

 

History

History
46 lines (29 loc) · 2.29 KB

File metadata and controls

46 lines (29 loc) · 2.29 KB

Contributing to WebPush

WebPush is an open source library. Feel free to contribute by submitting a pull request or creating (and solving) issues!

Requirements before submitting a pull request

The CI used to check that push messages can still be sent after the proposed code changes thanks to web-push testing service. Unfortunately, this package doesn't work anymore and I don't have the available time to fix it. We can't accept new PR without being sure that the code changes doesn't break anything. So, for a PR to be accepted, it is now requested to have one of these 3 solutions :

  1. You fix web-push-testing-service completely, but it's very time consuming
  2. You fix web-push-testing-service but only for stable version of Chrome, looks a bit more promising but still you'll need some time
  3. You don't fix web-push-testing-service, but you add a video that shows that the PR changes work as expected, and that core feature (sending a simple push with payload) works. For example a video showing a local test passing with a push notification on Chrome. Please make it enough clear for me to be 100% sure that it's ok to merge by looking at your code and the video.

Please don't make huge pull requests that introduce too many changes too.

Thanks!

Installing a mock push service

Before running tests, you'll need to install the web-push testing service:

npm install web-push-testing-service -g

NOTE: You might need to make sure command web-push-testing-service runs OK on cli. In my case on OSX, I needed to add a bash alias after install:

alias web-push-testing-service='/usr/local/Cellar/node/7.4.0/bin/web-push-testing-service'

After that, please create your own configuration file by copying phpunit.dist.xml to phpunit.xml and filling in the fields you need for testing (i.e. STANDARD_ENDPOINT, etc.).

Running Tests

Then, download phpunit and test with one of the following commands:

For All Tests php phpunit.phar

For a Specific Test File php phpunit.phar tests/EncryptionTest.php

For a Single Test php phpunit.phar . --filter "/::testPadPayload( .*)?$/" (regex)

But locally, these tests are handy.