A suite to track Project Diva score statistics and ratings / D4DJ event data.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
projectdivar/server/node_modules/twitter-autohook/test/autohook-success.js

55 lines
1.9 KiB

4 years ago
const { Autohook } = require('../');
const nock = require('nock');
const assert = require('assert');
const oauth = {
consumer_key: 'test',
consumer_secret: 'test',
token: 'test',
token_secret: 'test',
};
// Success
(async () => {
const environment = 'test';
const userId = '100001337';
const webhookId = '133700001337';
const webhookUrl = 'https://example.com/webhook/1';
const scope = nock('https://api.twitter.com')
.post('/oauth2/token', 'grant_type=client_credentials')
.reply(200, {token_type: 'bearer', access_token: 'test'})
.get('/1.1/account/verify_credentials.json')
.reply(200, {screen_name: 'TestUser'})
.get(`/1.1/account_activity/all/${environment}/webhooks.json`)
.reply(200, [
{id: webhookId, url: webhookUrl},
])
.delete(`/1.1/account_activity/all/${environment}/webhooks/${webhookId}.json`)
.reply(204)
.post(`/1.1/account_activity/all/${environment}/webhooks.json?url=${encodeURIComponent(webhookUrl)}`)
.reply(204)
.post(`/1.1/account_activity/all/${environment}/subscriptions.json`)
.reply(204)
.get('/1.1/account_activity/all/subscriptions/count.json')
.reply(200, {subscriptions_count: 0, provisioned_count: 15})
.delete(`/1.1/account_activity/all/${environment}/subscriptions/${userId}.json`)
.reply(204)
const webhook = new Autohook({...oauth, env: environment});
await assert.doesNotReject(webhook.removeWebhooks());
await assert.doesNotReject(webhook.start(webhookUrl));
let subscriptionStatus = null;
await assert.doesNotReject(async () => {
subscriptionStatus = await webhook.subscribe({oauth_token: oauth.token, oauth_token_secret: oauth.token_secret});
});
assert.strictEqual(subscriptionStatus, true);
let unsubscriptionStatus = null;
await assert.doesNotReject(async () => {
unsubscriptionStatus = await webhook.unsubscribe(userId);
});
assert.strictEqual(unsubscriptionStatus, true);
scope.done();
})();