diff --git a/generator/src/main/resources/line-bot-sdk-nodejs-generator/api-single.pebble b/generator/src/main/resources/line-bot-sdk-nodejs-generator/api-single.pebble index cf5177c1c..6d32d51bb 100644 --- a/generator/src/main/resources/line-bot-sdk-nodejs-generator/api-single.pebble +++ b/generator/src/main/resources/line-bot-sdk-nodejs-generator/api-single.pebble @@ -21,7 +21,12 @@ import {AxiosResponse} from "axios"; interface httpClientConfig { baseURL?: string; {% if authMethods != null -%} - channelAccessToken: string; + {% for authMethod in authMethods %} + {% if authMethod.isBasicBearer %} + channelAccessToken: string; + {% else %} + {% endif %} + {% endfor %} {% endif -%} // TODO support defaultHeaders? } @@ -37,7 +42,12 @@ export class {{operations.classname}} { this.httpClient = new HTTPClient({ defaultHeaders: { {% if authMethods != null -%} - Authorization: "Bearer " + config.channelAccessToken, + {% for authMethod in authMethods %} + {% if authMethod.isBasicBearer %} + Authorization: "Bearer " + config.channelAccessToken, + {% else %} + {% endif %} + {% endfor %} {% endif -%} }, responseParser: this.parseHTTPResponse.bind(this), diff --git a/generator/src/main/resources/line-bot-sdk-nodejs-generator/api_test.pebble b/generator/src/main/resources/line-bot-sdk-nodejs-generator/api_test.pebble index 4333bdb06..fa742fa52 100644 --- a/generator/src/main/resources/line-bot-sdk-nodejs-generator/api_test.pebble +++ b/generator/src/main/resources/line-bot-sdk-nodejs-generator/api_test.pebble @@ -23,7 +23,12 @@ describe("{{operations.classname}}", () => { const client = new {{operations.classname}}({ {% if authMethods != null -%} - channelAccessToken: channel_access_token, + {% for authMethod in authMethods %} + {% if authMethod.isBasicBearer %} + channelAccessToken: channel_access_token, + {% else %} + {% endif %} + {% endfor %} {% endif -%} }); @@ -48,10 +53,20 @@ describe("{{operations.classname}}", () => { requestCount++; {% if authMethods != null -%} - equal( - request.headers.get("Authorization"), - `Bearer ${channel_access_token}`, - ); + {% for authMethod in authMethods %} + {% if authMethod.isBasicBearer %} + equal( + request.headers.get("Authorization"), + `Bearer ${channel_access_token}`, + ); + {% else %} + equal( + request.headers.has("Authorization"), + false, + "Authorization header should not be present" + ); + {% endif %} + {% endfor %} {% endif -%} equal( request.headers.get("User-Agent"), diff --git a/lib/insight/api/insightClient.ts b/lib/insight/api/insightClient.ts index 46daa64a8..4e3a9d2bf 100644 --- a/lib/insight/api/insightClient.ts +++ b/lib/insight/api/insightClient.ts @@ -30,7 +30,9 @@ import { AxiosResponse } from "axios"; interface httpClientConfig { baseURL?: string; + channelAccessToken: string; + // TODO support defaultHeaders? } diff --git a/lib/insight/tests/api/InsightClientTest.spec.ts b/lib/insight/tests/api/InsightClientTest.spec.ts index 94be2aed3..ac9eab6eb 100644 --- a/lib/insight/tests/api/InsightClientTest.spec.ts +++ b/lib/insight/tests/api/InsightClientTest.spec.ts @@ -43,6 +43,7 @@ describe("InsightClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -70,6 +71,7 @@ describe("InsightClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -100,6 +102,7 @@ describe("InsightClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -131,6 +134,7 @@ describe("InsightClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -162,6 +166,7 @@ describe("InsightClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); diff --git a/lib/liff/api/liffClient.ts b/lib/liff/api/liffClient.ts index 5075b7cb6..c8d63e4f9 100644 --- a/lib/liff/api/liffClient.ts +++ b/lib/liff/api/liffClient.ts @@ -29,7 +29,9 @@ import { AxiosResponse } from "axios"; interface httpClientConfig { baseURL?: string; + channelAccessToken: string; + // TODO support defaultHeaders? } diff --git a/lib/liff/tests/api/LiffClientTest.spec.ts b/lib/liff/tests/api/LiffClientTest.spec.ts index 89b72cd19..566e5e611 100644 --- a/lib/liff/tests/api/LiffClientTest.spec.ts +++ b/lib/liff/tests/api/LiffClientTest.spec.ts @@ -42,6 +42,7 @@ describe("LiffClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -72,6 +73,7 @@ describe("LiffClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -99,6 +101,7 @@ describe("LiffClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -126,6 +129,7 @@ describe("LiffClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); diff --git a/lib/manage-audience/api/manageAudienceBlobClient.ts b/lib/manage-audience/api/manageAudienceBlobClient.ts index 398aa66c4..09459c7e5 100644 --- a/lib/manage-audience/api/manageAudienceBlobClient.ts +++ b/lib/manage-audience/api/manageAudienceBlobClient.ts @@ -26,7 +26,9 @@ import { AxiosResponse } from "axios"; interface httpClientConfig { baseURL?: string; + channelAccessToken: string; + // TODO support defaultHeaders? } diff --git a/lib/manage-audience/api/manageAudienceClient.ts b/lib/manage-audience/api/manageAudienceClient.ts index 0de61c182..de4753fc0 100644 --- a/lib/manage-audience/api/manageAudienceClient.ts +++ b/lib/manage-audience/api/manageAudienceClient.ts @@ -40,7 +40,9 @@ import { AxiosResponse } from "axios"; interface httpClientConfig { baseURL?: string; + channelAccessToken: string; + // TODO support defaultHeaders? } diff --git a/lib/manage-audience/tests/api/ManageAudienceBlobClientTest.spec.ts b/lib/manage-audience/tests/api/ManageAudienceBlobClientTest.spec.ts index 2095a7b19..cfab1709b 100644 --- a/lib/manage-audience/tests/api/ManageAudienceBlobClientTest.spec.ts +++ b/lib/manage-audience/tests/api/ManageAudienceBlobClientTest.spec.ts @@ -42,6 +42,7 @@ describe("ManageAudienceBlobClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -76,6 +77,7 @@ describe("ManageAudienceBlobClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); diff --git a/lib/manage-audience/tests/api/ManageAudienceClientTest.spec.ts b/lib/manage-audience/tests/api/ManageAudienceClientTest.spec.ts index e2805d35e..e9b6db7c1 100644 --- a/lib/manage-audience/tests/api/ManageAudienceClientTest.spec.ts +++ b/lib/manage-audience/tests/api/ManageAudienceClientTest.spec.ts @@ -57,6 +57,7 @@ describe("ManageAudienceClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -84,6 +85,7 @@ describe("ManageAudienceClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -111,6 +113,7 @@ describe("ManageAudienceClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -138,6 +141,7 @@ describe("ManageAudienceClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -165,6 +169,7 @@ describe("ManageAudienceClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -196,6 +201,7 @@ describe("ManageAudienceClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -227,6 +233,7 @@ describe("ManageAudienceClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -254,6 +261,7 @@ describe("ManageAudienceClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -281,6 +289,7 @@ describe("ManageAudienceClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -318,6 +327,7 @@ describe("ManageAudienceClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -349,6 +359,7 @@ describe("ManageAudienceClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); diff --git a/lib/messaging-api/api/messagingApiBlobClient.ts b/lib/messaging-api/api/messagingApiBlobClient.ts index 037c9f004..79c61a7a8 100644 --- a/lib/messaging-api/api/messagingApiBlobClient.ts +++ b/lib/messaging-api/api/messagingApiBlobClient.ts @@ -26,7 +26,9 @@ import { AxiosResponse } from "axios"; interface httpClientConfig { baseURL?: string; + channelAccessToken: string; + // TODO support defaultHeaders? } diff --git a/lib/messaging-api/api/messagingApiClient.ts b/lib/messaging-api/api/messagingApiClient.ts index c7f42260b..6f008a023 100644 --- a/lib/messaging-api/api/messagingApiClient.ts +++ b/lib/messaging-api/api/messagingApiClient.ts @@ -69,7 +69,9 @@ import { AxiosResponse } from "axios"; interface httpClientConfig { baseURL?: string; + channelAccessToken: string; + // TODO support defaultHeaders? } diff --git a/lib/messaging-api/tests/api/MessagingApiBlobClientTest.spec.ts b/lib/messaging-api/tests/api/MessagingApiBlobClientTest.spec.ts index b523d17ab..bfe72e6cf 100644 --- a/lib/messaging-api/tests/api/MessagingApiBlobClientTest.spec.ts +++ b/lib/messaging-api/tests/api/MessagingApiBlobClientTest.spec.ts @@ -43,6 +43,7 @@ describe("MessagingApiBlobClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -74,6 +75,7 @@ describe("MessagingApiBlobClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -105,6 +107,7 @@ describe("MessagingApiBlobClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -136,6 +139,7 @@ describe("MessagingApiBlobClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -167,6 +171,7 @@ describe("MessagingApiBlobClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); diff --git a/lib/messaging-api/tests/api/MessagingApiClientTest.spec.ts b/lib/messaging-api/tests/api/MessagingApiClientTest.spec.ts index cbcd5ca9e..c2f2fa77a 100644 --- a/lib/messaging-api/tests/api/MessagingApiClientTest.spec.ts +++ b/lib/messaging-api/tests/api/MessagingApiClientTest.spec.ts @@ -82,6 +82,7 @@ describe("MessagingApiClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -112,6 +113,7 @@ describe("MessagingApiClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -141,6 +143,7 @@ describe("MessagingApiClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -165,6 +168,7 @@ describe("MessagingApiClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -192,6 +196,7 @@ describe("MessagingApiClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -222,6 +227,7 @@ describe("MessagingApiClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -253,6 +259,7 @@ describe("MessagingApiClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -284,6 +291,7 @@ describe("MessagingApiClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -313,6 +321,7 @@ describe("MessagingApiClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -342,6 +351,7 @@ describe("MessagingApiClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -366,6 +376,7 @@ describe("MessagingApiClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -390,6 +401,7 @@ describe("MessagingApiClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -416,6 +428,7 @@ describe("MessagingApiClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -449,6 +462,7 @@ describe("MessagingApiClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -479,6 +493,7 @@ describe("MessagingApiClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -510,6 +525,7 @@ describe("MessagingApiClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -543,6 +559,7 @@ describe("MessagingApiClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -570,6 +587,7 @@ describe("MessagingApiClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -594,6 +612,7 @@ describe("MessagingApiClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -622,6 +641,7 @@ describe("MessagingApiClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -653,6 +673,7 @@ describe("MessagingApiClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -684,6 +705,7 @@ describe("MessagingApiClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -714,6 +736,7 @@ describe("MessagingApiClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -745,6 +768,7 @@ describe("MessagingApiClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -775,6 +799,7 @@ describe("MessagingApiClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -805,6 +830,7 @@ describe("MessagingApiClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -835,6 +861,7 @@ describe("MessagingApiClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -866,6 +893,7 @@ describe("MessagingApiClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -893,6 +921,7 @@ describe("MessagingApiClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -921,6 +950,7 @@ describe("MessagingApiClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -952,6 +982,7 @@ describe("MessagingApiClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -979,6 +1010,7 @@ describe("MessagingApiClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -1007,6 +1039,7 @@ describe("MessagingApiClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -1036,6 +1069,7 @@ describe("MessagingApiClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -1067,6 +1101,7 @@ describe("MessagingApiClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -1096,6 +1131,7 @@ describe("MessagingApiClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -1124,6 +1160,7 @@ describe("MessagingApiClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -1154,6 +1191,7 @@ describe("MessagingApiClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -1184,6 +1222,7 @@ describe("MessagingApiClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -1214,6 +1253,7 @@ describe("MessagingApiClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -1243,6 +1283,7 @@ describe("MessagingApiClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -1270,6 +1311,7 @@ describe("MessagingApiClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -1300,6 +1342,7 @@ describe("MessagingApiClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -1332,6 +1375,7 @@ describe("MessagingApiClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -1364,6 +1408,7 @@ describe("MessagingApiClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -1396,6 +1441,7 @@ describe("MessagingApiClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -1425,6 +1471,7 @@ describe("MessagingApiClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -1452,6 +1499,7 @@ describe("MessagingApiClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -1483,6 +1531,7 @@ describe("MessagingApiClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -1510,6 +1559,7 @@ describe("MessagingApiClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -1537,6 +1587,7 @@ describe("MessagingApiClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -1568,6 +1619,7 @@ describe("MessagingApiClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -1595,6 +1647,7 @@ describe("MessagingApiClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -1626,6 +1679,7 @@ describe("MessagingApiClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -1655,6 +1709,7 @@ describe("MessagingApiClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -1682,6 +1737,7 @@ describe("MessagingApiClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -1709,6 +1765,7 @@ describe("MessagingApiClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -1736,6 +1793,7 @@ describe("MessagingApiClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -1763,6 +1821,7 @@ describe("MessagingApiClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -1790,6 +1849,7 @@ describe("MessagingApiClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -1817,6 +1877,7 @@ describe("MessagingApiClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); diff --git a/lib/module-attach/api/lineModuleAttachClient.ts b/lib/module-attach/api/lineModuleAttachClient.ts index d65126f12..497e10f69 100644 --- a/lib/module-attach/api/lineModuleAttachClient.ts +++ b/lib/module-attach/api/lineModuleAttachClient.ts @@ -26,7 +26,7 @@ import { AxiosResponse } from "axios"; interface httpClientConfig { baseURL?: string; - channelAccessToken: string; + // TODO support defaultHeaders? } @@ -38,9 +38,7 @@ export class LineModuleAttachClient { config.baseURL = "https://manager.line.biz"; } this.httpClient = new HTTPClient({ - defaultHeaders: { - Authorization: "Bearer " + config.channelAccessToken, - }, + defaultHeaders: {}, responseParser: this.parseHTTPResponse.bind(this), baseURL: config.baseURL, }); diff --git a/lib/module-attach/tests/api/LineModuleAttachClientTest.spec.ts b/lib/module-attach/tests/api/LineModuleAttachClientTest.spec.ts index 8ebf5f8d2..72f595a2d 100644 --- a/lib/module-attach/tests/api/LineModuleAttachClientTest.spec.ts +++ b/lib/module-attach/tests/api/LineModuleAttachClientTest.spec.ts @@ -22,9 +22,7 @@ describe("LineModuleAttachClient", () => { server.resetHandlers(); }); - const client = new LineModuleAttachClient({ - channelAccessToken: channel_access_token, - }); + const client = new LineModuleAttachClient({}); it("attachModule", async () => { let requestCount = 0; @@ -46,9 +44,11 @@ describe("LineModuleAttachClient", () => { requestCount++; equal( - request.headers.get("Authorization"), - `Bearer ${channel_access_token}`, + request.headers.has("Authorization"), + false, + "Authorization header should not be present", ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); diff --git a/lib/module/api/lineModuleClient.ts b/lib/module/api/lineModuleClient.ts index 62cd73f99..ab710e8a0 100644 --- a/lib/module/api/lineModuleClient.ts +++ b/lib/module/api/lineModuleClient.ts @@ -28,7 +28,9 @@ import { AxiosResponse } from "axios"; interface httpClientConfig { baseURL?: string; + channelAccessToken: string; + // TODO support defaultHeaders? } diff --git a/lib/module/tests/api/LineModuleClientTest.spec.ts b/lib/module/tests/api/LineModuleClientTest.spec.ts index 25ef97207..9e23f8de3 100644 --- a/lib/module/tests/api/LineModuleClientTest.spec.ts +++ b/lib/module/tests/api/LineModuleClientTest.spec.ts @@ -45,6 +45,7 @@ describe("LineModuleClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -74,6 +75,7 @@ describe("LineModuleClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -103,6 +105,7 @@ describe("LineModuleClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); @@ -136,6 +139,7 @@ describe("LineModuleClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); diff --git a/lib/shop/api/shopClient.ts b/lib/shop/api/shopClient.ts index c642b4df3..499232eaa 100644 --- a/lib/shop/api/shopClient.ts +++ b/lib/shop/api/shopClient.ts @@ -26,7 +26,9 @@ import { AxiosResponse } from "axios"; interface httpClientConfig { baseURL?: string; + channelAccessToken: string; + // TODO support defaultHeaders? } diff --git a/lib/shop/tests/api/ShopClientTest.spec.ts b/lib/shop/tests/api/ShopClientTest.spec.ts index a7aadf7a3..65d4eb3e1 100644 --- a/lib/shop/tests/api/ShopClientTest.spec.ts +++ b/lib/shop/tests/api/ShopClientTest.spec.ts @@ -39,6 +39,7 @@ describe("ShopClient", () => { request.headers.get("Authorization"), `Bearer ${channel_access_token}`, ); + equal(request.headers.get("User-Agent"), `${pkg.name}/${pkg.version}`); return HttpResponse.json({}); diff --git a/test/libs-moduleAttach.spec.ts b/test/libs-moduleAttach.spec.ts new file mode 100644 index 000000000..332587aa9 --- /dev/null +++ b/test/libs-moduleAttach.spec.ts @@ -0,0 +1,69 @@ +import { moduleAttach } from "../lib"; +import { http, HttpResponse } from "msw"; +import { setupServer } from "msw/node"; +import { deepEqual, equal } from "assert"; + +const pkg = require("../package.json"); + +const client = new moduleAttach.LineModuleAttachClient({}); + +describe("moduleAttach", () => { + const server = setupServer(); + before(() => { + server.listen(); + }); + after(() => { + server.close(); + }); + afterEach(() => { + server.resetHandlers(); + }); + + it("attachModule", async () => { + let requestCount = 0; + server.use( + http.post( + "https://manager.line.biz/module/auth/v1/token", + async ({ request, params, cookies }) => { + requestCount++; + + equal( + request.headers.has("Authorization"), + false, + "Authorization header should not be present", + ); + equal( + request.headers.get("User-Agent"), + `${pkg.name}/${pkg.version}`, + ); + equal( + request.headers.get("content-type"), + "application/x-www-form-urlencoded", + ); + const expectedBody = "grant_type=authorization_code&code=Code&redirect_uri=https%3A%2F%2Fexample.com&code_verifier=CodeVerifier&client_id=ClientId&client_secret=ClientSecret®ion=Region&basic_search_id=BasicSearchId&scope=Scope&brand_type=BrandType"; + equal( + await request.text(), + expectedBody, + ); + + return HttpResponse.json({}); + }, + ), + ); + + const res = await client.attachModule( + "authorization_code", + "Code", + "https://example.com", + "CodeVerifier", + "ClientId", + "ClientSecret", + "Region", + "BasicSearchId", + "Scope", + "BrandType", + ); + equal(requestCount, 1); + deepEqual(res, {}); + }); +});