forked from draftbit/twitter-lite
-
Notifications
You must be signed in to change notification settings - Fork 0
/
twitter.test.js
109 lines (94 loc) · 2.68 KB
/
twitter.test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
const Twitter = require("./twitter");
const {
TWITTER_CONSUMER_KEY,
TWITTER_CONSUMER_SECRET,
ACCESS_TOKEN,
ACCESS_TOKEN_SECRET
} = process.env;
it("should default export to be a function", () => {
expect(new Twitter()).toBeInstanceOf(Twitter);
});
it("should return the API URL", () => {
expect(new Twitter().url).toEqual("https://api.twitter.com/1.1");
});
it("should return a stream API URL", () => {
const options = { subdomain: "stream" };
expect(new Twitter(options).url).toEqual("https://stream.twitter.com/1.1");
});
it("should fail on invalid access_token_secret", async () => {
const client = new Twitter({
subdomain: "api",
consumer_key: TWITTER_CONSUMER_KEY,
consumer_secret: TWITTER_CONSUMER_SECRET,
access_token_key: ACCESS_TOKEN,
access_token_secret: "xyz"
});
const results = await client.get("account/verify_credentials");
expect(results).toEqual({
errors: [{ code: 32, message: "Could not authenticate you." }]
});
});
it("should fail on invalid or expired token", async () => {
const client = new Twitter({
subdomain: "api",
consumer_key: "xyz",
consumer_secret: "xyz",
access_token_key: "xyz",
access_token_secret: "xyz"
});
const results = await client.get("account/verify_credentials");
expect(results).toEqual({
errors: [{ code: 89, message: "Invalid or expired token." }]
});
});
it("should verify credentials with correct tokens", async () => {
const client = new Twitter({
subdomain: "api",
consumer_key: TWITTER_CONSUMER_KEY,
consumer_secret: TWITTER_CONSUMER_SECRET,
access_token_key: ACCESS_TOKEN,
access_token_secret: ACCESS_TOKEN_SECRET
});
const response = await client.get("account/verify_credentials");
const results = {
created_at: response.created_at,
name: response.name,
lang: response.lang,
screen_name: response.screen_name,
description: response.description
};
expect(results).toEqual({
created_at: "Wed Mar 14 21:17:37 +0000 2018",
name: "Nodejs Testing Account",
lang: "en",
screen_name: "nodejs_lite",
description: "Twitter Lite Testing Account"
});
});
it("should show 2 favorited tweets", async () => {
const client = new Twitter({
subdomain: "api",
consumer_key: TWITTER_CONSUMER_KEY,
consumer_secret: TWITTER_CONSUMER_SECRET,
access_token_key: ACCESS_TOKEN,
access_token_secret: ACCESS_TOKEN_SECRET
});
const response = await client.get("favorites/list");
const [first, second] = response;
const results = [
{
id: first.id
},
{
id: second.id
}
];
expect(results).toEqual([
{
id: 973775515453722600
},
{
id: 972868365898334200
}
]);
});