-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathget-web-flow-authorization-url.test.ts
74 lines (68 loc) · 2.36 KB
/
get-web-flow-authorization-url.test.ts
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
import { describe, expect, it } from "vitest";
import { request } from "@octokit/request";
import { getWebFlowAuthorizationUrl } from "../src/index.js";
describe("getWebFlowAuthorizationUrl()", () => {
it("README example", () => {
const { url } = getWebFlowAuthorizationUrl({
clientType: "oauth-app",
clientId: "1234567890abcdef1234",
scopes: ["repo"],
state: "state123",
});
expect(url).toEqual(
"https://github.com/login/oauth/authorize?allow_signup=true&client_id=1234567890abcdef1234&scope=repo&state=state123",
);
});
it("all options for OAuth Apps", () => {
const result = getWebFlowAuthorizationUrl({
clientType: "oauth-app",
clientId: "1234567890abcdef1234",
scopes: ["repo"],
state: "state123",
allowSignup: false,
redirectUrl: "https://acme-inc.com/login",
login: "octocat",
request: request.defaults({
baseUrl: "https://ghe.acme-inc.com/api/v3",
}),
});
expect(result).toMatchInlineSnapshot(`
{
"allowSignup": false,
"clientId": "1234567890abcdef1234",
"clientType": "oauth-app",
"login": "octocat",
"redirectUrl": "https://acme-inc.com/login",
"scopes": [
"repo",
],
"state": "state123",
"url": "https://ghe.acme-inc.com/login/oauth/authorize?allow_signup=false&client_id=1234567890abcdef1234&login=octocat&redirect_uri=https%3A%2F%2Facme-inc.com%2Flogin&scope=repo&state=state123",
}
`);
});
it("all options for GitHub Apps", () => {
const result = getWebFlowAuthorizationUrl({
clientType: "github-app",
clientId: "lv1.1234567890abcdef",
state: "state123",
allowSignup: false,
redirectUrl: "https://acme-inc.com/login",
login: "octocat",
request: request.defaults({
baseUrl: "https://ghe.acme-inc.com/api/v3",
}),
});
expect(result).toMatchInlineSnapshot(`
{
"allowSignup": false,
"clientId": "lv1.1234567890abcdef",
"clientType": "github-app",
"login": "octocat",
"redirectUrl": "https://acme-inc.com/login",
"state": "state123",
"url": "https://ghe.acme-inc.com/login/oauth/authorize?allow_signup=false&client_id=lv1.1234567890abcdef&login=octocat&redirect_uri=https%3A%2F%2Facme-inc.com%2Flogin&state=state123",
}
`);
});
});