pebble/sdk/tests/include
2025-01-27 11:38:16 -08:00
..
.eslintrc.js Import of the watch repository from Pebble 2025-01-27 11:38:16 -08:00
.gitignore Import of the watch repository from Pebble 2025-01-27 11:38:16 -08:00
package.json Import of the watch repository from Pebble 2025-01-27 11:38:16 -08:00
pebble-mock.js Import of the watch repository from Pebble 2025-01-27 11:38:16 -08:00
README.md Import of the watch repository from Pebble 2025-01-27 11:38:16 -08:00
test_message.js Import of the watch repository from Pebble 2025-01-27 11:38:16 -08:00

sdk/include/*.js unit testing how-to

This folder contains tests for the .js code in sdk/include.

Installing dependencies

  1. cd sdk/tests/include
  2. npm install

Running tests

  1. cd sdk/tests/include
  2. npm test this runs the tests using the mocha test runner.

You should see some output, similar to this:

$ npm test

> pebble-pkjs-tests@1.0.0 test /Users/martijn/tintin/sdk/tests/include
> NODE_PATH=../include ./node_modules/mocha/bin/mocha *.js

  Pebble
    interprets received postMessage API data as UTF-8
      ✓ interprets [34,34] as ""
      ✓ interprets [34,240,159,146,169,34] as "💩"
      ✓ interprets [34,237,160,181,237,188,128,34] as {}
      ✓ interprets [34,196,145,34] as "đ"
      ✓ interprets [34,224,160,149,34] as "ࠕ"
    encodes sent postMessage API data as UTF-8
sendAppMessage: [object Object]
      ✓ encodes "" as [34,34,0]
sendAppMessage: [object Object]
      ✓ encodes "💩" as [34,240,159,146,169,34,0]
sendAppMessage: [object Object]
      ✓ encodes "đ" as [34,196,145,34,0]
sendAppMessage: [object Object]
      ✓ encodes "ࠕ" as [34,224,160,149,34,0]

  9 passing (25ms)

Linting the test code

  1. cd sdk/tests/include
  2. npm run-script lint

Adding tests

  • You can add test_xyz.js files in the tests folder. It will automatically get picked up by the test runner.
  • If you need to a mock for the global Pebble object, check out pebble-mock.js. It's probably worth using and extending that than to re-invent the wheel.
  • When adding additional dependencies (node packages), make sure to install them using npm install --save-dev <PACKAGE_NAME> so that they get added to the devDependencies in the package.json file.