Node.js >= 16
$ npm run build
$ npm test
$ npm run test:browser
Attention Repository follows the GitHub Flow.
The SDK will be used in a variety of different third-party applications, which means it has to be written with the lowest amount of dependencies. Please do not include anything external if there is no proper justification.
- All AJAX interaction must be mocked
- No direct SDK's method overrides in tests
It is forbidden to use variables to determine, whether callback was executed or not. The following code IS NOT OK:
```js
var wasCalled = false,
callParameter = null;
callback = function(e){ wasCalled = true; callParameter = e; };
foo.bar({success: callback});
expect(wasCalled).to.be.true;
expect(callParameter).to.be.equal(...);
```
The way it should be done:
```js
var spy = chai.spy(function(e){ expect(e).to.be.equal(...); }); // expectation in callback
foo.bar({success: spy});
expect(spy).to.be.called.once(); // expectation that spy was called
```
These tests access real account on real production/staging servers. In order to make things happen a proper environment variables have to be defined:
RCSDK_API_KEY=YOUR_API_KEY
RCSDK_API_SERVER=http://platform.ringcentral.com
RCSDK_AGS_SERVER=http://ags-server-host
RCSDK_AGS_DBNAME=database
Once ready run the following command:
$ npm run test-api
Environment variables may also be defined inline (substitute (...) with more vars):
$ RCSDK_API_KEY=YOUR_API_KEY (...) RCSDK_AGS_DBNAME=database npm run test-api
-
Canary release — commit to master, CI will do the rest, alternatively you may publish locally:
$ npm run publish:canary
-
Pre release:
$ npm run prepare:prerelease [-- --yes --no-git-tag-version --no-push]
This command will run
lerna version prereleaseto update versions and push to git with appropriate tag, tag will be picked up by CI and actual publish will happen (lerna publish). -
Versioned release:
$ npm run prepare:release [-- --yes --no-git-tag-version --no-push]
This command will run
lerna versionto update versions and push to git with appropriate tag, tag will be picked up by CI and actual publish will happen (lerna publish). -
Manual publish — run publishing locally, it assumes you already prepared your release:
$ npm run publish:fromgit
Keep in mind that CI will fail because it will try to publish on top of your already published tags.
