diff --git a/packages/tests/src/e2e/debug/DebugCommandAndResponse.tests.ts b/packages/tests/src/e2e/debug/DebugCommandAndResponse.tests.ts index 7f27f240ba3..78b325b2a4b 100644 --- a/packages/tests/src/e2e/debug/DebugCommandAndResponse.tests.ts +++ b/packages/tests/src/e2e/debug/DebugCommandAndResponse.tests.ts @@ -74,7 +74,8 @@ describe("Debug V3 command-and-response template", () => { chai.assert.isDefined(context.BOT_ID); chai.assert.isNotEmpty(context.BOT_ID); const aadApp = await getAadAppByClientId(context.BOT_ID); - chai.assert.equal(aadApp?.id, context.BOT_ID); + chai.assert.isDefined(aadApp); + chai.assert.equal(aadApp?.appId, context.BOT_ID); const bot = await getBot(context.BOT_ID); chai.assert.equal(bot?.botId, context.BOT_ID); chai.assert.equal( diff --git a/packages/tests/src/e2e/debug/DebugNotificationHttpTrigger.tests.ts b/packages/tests/src/e2e/debug/DebugNotificationHttpTrigger.tests.ts index 2c7d1017387..6b2e08fdfe0 100644 --- a/packages/tests/src/e2e/debug/DebugNotificationHttpTrigger.tests.ts +++ b/packages/tests/src/e2e/debug/DebugNotificationHttpTrigger.tests.ts @@ -77,7 +77,8 @@ describe("Debug V3 notification-http-trigger template", () => { chai.assert.isDefined(context.BOT_ID); chai.assert.isNotEmpty(context.BOT_ID); const aadApp = await getAadAppByClientId(context.BOT_ID); - chai.assert.equal(aadApp?.id, context.BOT_ID); + chai.assert.isDefined(aadApp); + chai.assert.equal(aadApp?.appId, context.BOT_ID); const bot = await getBot(context.BOT_ID); chai.assert.equal(bot?.botId, context.BOT_ID); chai.assert.equal( diff --git a/packages/tests/src/e2e/debug/utility.ts b/packages/tests/src/e2e/debug/utility.ts index f5939f60ee5..0233eb7f437 100644 --- a/packages/tests/src/e2e/debug/utility.ts +++ b/packages/tests/src/e2e/debug/utility.ts @@ -2,7 +2,7 @@ // Licensed under the MIT license. import m365Provider from "@microsoft/teamsfx-cli/src/commonlib/m365LoginUserPassword"; -import { AppStudioScopes } from "@microsoft/teamsfx-core"; +import { AppStudioScopes, GraphScopes } from "@microsoft/teamsfx-core"; import axios, { AxiosInstance } from "axios"; async function createRequester(): Promise { @@ -21,11 +21,27 @@ async function createRequester(): Promise { return requester; } +async function createGraphRequester(): Promise { + const appStudioTokenRes = await m365Provider.getAccessToken({ + scopes: GraphScopes, + }); + const appStudioToken = appStudioTokenRes.isOk() + ? appStudioTokenRes.value + : undefined; + const requester = axios.create({ + baseURL: "https://graph.microsoft.com/v1.0", + }); + requester.defaults.headers.common[ + "Authorization" + ] = `Bearer ${appStudioToken}`; + return requester; +} + export async function deleteAadAppByObjectId(objectId: string) { - const requester = await createRequester(); + const requester = await createGraphRequester(); for (let retries = 3; retries > 0; --retries) { try { - const response = await requester.delete(`api/aadapp/v2/${objectId}`); + const response = await requester.delete(`/applications/${objectId}`); if (response.status >= 200 && response.status < 300) { console.log("Successfully deleted AAD app"); return; @@ -37,12 +53,16 @@ export async function deleteAadAppByObjectId(objectId: string) { } export async function getAadAppByClientId(clientId: string): Promise { - const requester = await createRequester(); + const requester = await createGraphRequester(); for (let retries = 3; retries > 0; --retries) { try { - const response = await requester.get(`api/aadapp/${clientId}`); + const response = await requester.get( + `/applications(appId='${clientId}')` + ); if (response.status >= 200 && response.status < 300) { - console.log("Successfully got AAD app"); + console.log( + `Successfully got AAD app ${response.data.id} with client id ${clientId}` + ); return response.data; } } catch (e) { @@ -54,8 +74,8 @@ export async function getAadAppByClientId(clientId: string): Promise { export async function deleteAadAppByClientId(clientId: string) { const aadApp = await getAadAppByClientId(clientId); - if (aadApp?.objectId) { - await deleteAadAppByObjectId(aadApp.objectId); + if (aadApp?.id) { + await deleteAadAppByObjectId(aadApp.id); } } diff --git a/packages/tests/src/e2e/m365/DebugLinkUnfurling.tests.ts b/packages/tests/src/e2e/m365/DebugLinkUnfurling.tests.ts index e66c8c3ab6c..6fd3fbc25a3 100644 --- a/packages/tests/src/e2e/m365/DebugLinkUnfurling.tests.ts +++ b/packages/tests/src/e2e/m365/DebugLinkUnfurling.tests.ts @@ -75,7 +75,8 @@ describe("Debug link unfurling template", () => { chai.assert.isDefined(context.BOT_ID); chai.assert.isNotEmpty(context.BOT_ID); const aadApp = await getAadAppByClientId(context.BOT_ID); - chai.assert.equal(aadApp?.id, context.BOT_ID); + chai.assert.isDefined(aadApp); + chai.assert.equal(aadApp?.appId, context.BOT_ID); const bot = await getBot(context.BOT_ID); chai.assert.equal(bot?.botId, context.BOT_ID); chai.assert.equal( diff --git a/packages/tests/src/e2e/m365/DebugM365MessageExtension.tests.ts b/packages/tests/src/e2e/m365/DebugM365MessageExtension.tests.ts index 0598d05a1c0..07e8d2e10b4 100644 --- a/packages/tests/src/e2e/m365/DebugM365MessageExtension.tests.ts +++ b/packages/tests/src/e2e/m365/DebugM365MessageExtension.tests.ts @@ -75,7 +75,8 @@ describe("Debug V3 m365-message-extension template", () => { chai.assert.isDefined(context.BOT_ID); chai.assert.isNotEmpty(context.BOT_ID); const aadApp = await getAadAppByClientId(context.BOT_ID); - chai.assert.equal(aadApp?.id, context.BOT_ID); + chai.assert.isDefined(aadApp); + chai.assert.equal(aadApp?.appId, context.BOT_ID); const bot = await getBot(context.BOT_ID); chai.assert.equal(bot?.botId, context.BOT_ID); chai.assert.equal( diff --git a/packages/tests/src/e2e/m365/DeployLinkUnfurling.tests.ts b/packages/tests/src/e2e/m365/DeployLinkUnfurling.tests.ts index 8c2d4baae92..5903ff98651 100644 --- a/packages/tests/src/e2e/m365/DeployLinkUnfurling.tests.ts +++ b/packages/tests/src/e2e/m365/DeployLinkUnfurling.tests.ts @@ -82,7 +82,8 @@ describe("Deploy Link Unfurling template", () => { chai.assert.isDefined(context.BOT_ID); chai.assert.isNotEmpty(context.BOT_ID); const aadApp = await getAadAppByClientId(context.BOT_ID); - chai.assert.equal(aadApp?.id, context.BOT_ID); + chai.assert.isDefined(aadApp); + chai.assert.equal(aadApp?.appId, context.BOT_ID); // validate m365 chai.assert.isDefined(context.M365_TITLE_ID); diff --git a/packages/tests/src/e2e/m365/DeployM365MessageExtension.tests.ts b/packages/tests/src/e2e/m365/DeployM365MessageExtension.tests.ts index 7ec68fe9b10..45e8491bf25 100644 --- a/packages/tests/src/e2e/m365/DeployM365MessageExtension.tests.ts +++ b/packages/tests/src/e2e/m365/DeployM365MessageExtension.tests.ts @@ -82,7 +82,8 @@ describe("Deploy V3 m365-message-extension template", () => { chai.assert.isDefined(context.BOT_ID); chai.assert.isNotEmpty(context.BOT_ID); const aadApp = await getAadAppByClientId(context.BOT_ID); - chai.assert.equal(aadApp?.id, context.BOT_ID); + chai.assert.isDefined(aadApp); + chai.assert.equal(aadApp?.appId, context.BOT_ID); // validate m365 chai.assert.isDefined(context.M365_TITLE_ID);