Skip to content

Commit

Permalink
test: workaround free sku quota for static web app (#10523)
Browse files Browse the repository at this point in the history
* test: workaround free sku quota for static web app

* test: remove outdated validation
  • Loading branch information
hund030 authored Dec 14, 2023
1 parent 7938e29 commit 2350b35
Show file tree
Hide file tree
Showing 5 changed files with 24 additions and 50 deletions.
26 changes: 8 additions & 18 deletions packages/tests/src/e2e/commonUtils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -191,6 +191,14 @@ export async function setSimpleAuthSkuNameToB1Bicep(
return setProvisionParameterValueV3(projectPath, envName, parameters);
}

export async function setStaticWebAppSkuNameToStandardBicep(
projectPath: string,
envName: string
): Promise<void> {
const paramerters = { key: "staticWebAppSku", value: "Standard" };
return setProvisionParameterValueV3(projectPath, envName, paramerters);
}

export async function getProvisionParameterValueByKey(
projectPath: string,
envName: string,
Expand Down Expand Up @@ -657,24 +665,6 @@ export async function customizeBicepFilesToCustomizedRg(
}
}

export async function validateTabAndBotProjectProvision(
projectPath: string,
env: string
) {
const context = await readContextMultiEnvV3(projectPath, env);
// Validate Aad App
const aad = AadValidator.init(context, false, m365Login);
await AadValidator.validate(aad);

// Validate Tab Frontend
const frontend = FrontendValidator.init(context);
await FrontendValidator.validateProvision(frontend);

// Validate Bot Provision
const bot = new BotValidator(context, projectPath, env);
await bot.validateProvisionV3();
}

export async function getRGAfterProvision(
projectPath: string,
env: string
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import {
getUniqueAppName,
readContextMultiEnvV3,
removeTeamsAppExtendToM365,
setStaticWebAppSkuNameToStandardBicep,
} from "../commonUtils";

describe("Deploy to customized resource group", function () {
Expand Down Expand Up @@ -52,6 +53,9 @@ describe("Deploy to customized resource group", function () {
const customizedRgName = `${appName}-customized-rg`;
await createResourceGroup(customizedRgName, "eastus");

// workaround free tier quota
await setStaticWebAppSkuNameToStandardBicep(projectPath, "dev");

await CliHelper.provisionProject(projectPath, undefined, "dev", {
...process.env,
AZURE_RESOURCE_GROUP_NAME: customizedRgName,
Expand All @@ -65,11 +69,6 @@ describe("Deploy to customized resource group", function () {
// Validate Aad App
const aad = AadValidator.init(context, false, M365Login);
await AadValidator.validate(aad);

// Validate Tab Frontend
const frontend = FrontendValidator.init(context);
await FrontendValidator.validateProvision(frontend);
await FrontendValidator.validateDeploy(frontend);
}

await deleteResourceGroupByName(customizedRgName);
Expand Down
16 changes: 4 additions & 12 deletions packages/tests/src/e2e/frontend/TestCreateTab.tests.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ import {
getTestFolder,
getUniqueAppName,
removeTeamsAppExtendToM365,
setStaticWebAppSkuNameToStandardBicep,
} from "../commonUtils";

describe("Create single tab", function () {
Expand Down Expand Up @@ -61,6 +62,9 @@ describe("Create single tab", function () {
// remove teamsApp/extendToM365 in case it fails
removeTeamsAppExtendToM365(path.join(projectPath, "teamsapp.yml"));

// workaround free tier quota
await setStaticWebAppSkuNameToStandardBicep(projectPath, "dev");

const result = await createResourceGroup(resourceGroupName, "eastus");
assert.isTrue(result);

Expand All @@ -82,10 +86,6 @@ describe("Create single tab", function () {
// Validate Aad App
const aad = AadValidator.init(context, false, M365Login);
await AadValidator.validate(aad);

// Validate Tab Frontend
const frontend = FrontendValidator.init(context);
await FrontendValidator.validateProvision(frontend);
}
);

Expand All @@ -103,14 +103,6 @@ describe("Create single tab", function () {
// Validate deployment
const envFilePath = path.join(projectPath, "env", `.env.${envName}`);
assert.isTrue(fs.pathExistsSync(envFilePath));
const parseResult = dotenvUtil.deserialize(
await fs.readFile(envFilePath, { encoding: "utf8" })
);
const context = parseResult.obj;

// Validate Tab Frontend
const frontend = FrontendValidator.init(context);
await FrontendValidator.validateDeploy(frontend);
}
);
});
Expand Down
14 changes: 4 additions & 10 deletions packages/tests/src/e2e/m365/DeployOboTab.tests.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,14 @@ import m365Provider from "@microsoft/teamsapp-cli/src/commonlib/m365LoginUserPas
import { AadValidator } from "../../commonlib/aadValidate";
import { CliHelper } from "../../commonlib/cliHelper";
import { Capability } from "../../utils/constants";
import { FrontendValidator } from "../../commonlib/frontendValidator";
import {
cleanUpLocalProject,
createResourceGroup,
deleteResourceGroupByName,
getTestFolder,
getUniqueAppName,
readContextMultiEnvV3,
setStaticWebAppSkuNameToStandardBicep,
} from "../commonUtils";
import {
deleteAadAppByObjectId,
Expand Down Expand Up @@ -65,6 +65,9 @@ describe("Deploy V3 m365-tab template", () => {
const result = await createResourceGroup(resourceGroupName, "eastus");
chai.assert.isTrue(result);

// workaround free tier quota
await setStaticWebAppSkuNameToStandardBicep(projectPath, "dev");

await CliHelper.provisionProject(projectPath, "", "dev", {
...process.env,
AZURE_RESOURCE_GROUP_NAME: resourceGroupName,
Expand All @@ -85,10 +88,6 @@ describe("Deploy V3 m365-tab template", () => {
const teamsApp = await getTeamsApp(context.TEAMS_APP_ID);
chai.assert.equal(teamsApp?.teamsAppId, context.TEAMS_APP_ID);

// validate tab
let frontend = FrontendValidator.init(context);
await FrontendValidator.validateProvision(frontend);

// validate m365
chai.assert.isDefined(context.M365_TITLE_ID);
chai.assert.isNotEmpty(context.M365_TITLE_ID);
Expand All @@ -101,11 +100,6 @@ describe("Deploy V3 m365-tab template", () => {

context = await readContextMultiEnvV3(projectPath, "dev");
chai.assert.isDefined(context);

// validate tab
frontend = FrontendValidator.init(context);
await FrontendValidator.validateProvision(frontend);
await FrontendValidator.validateDeploy(frontend);
}
);
});
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import { expect } from "chai";
import fs from "fs-extra";
import path from "path";
import M365Login from "@microsoft/teamsapp-cli/src/commonlib/m365Login";
import { AadValidator, FrontendValidator } from "../../commonlib";
import { AadValidator } from "../../commonlib";
import { CliHelper } from "../../commonlib/cliHelper";
import { Capability } from "../../utils/constants";
import {
Expand All @@ -20,6 +20,7 @@ import {
readContextMultiEnvV3,
setAadManifestIdentifierUrisV3,
createResourceGroup,
setStaticWebAppSkuNameToStandardBicep,
} from "../commonUtils";
import { Executor } from "../../utils/executor";

Expand Down Expand Up @@ -65,6 +66,8 @@ describe("SSO Tab with aad manifest enabled", () => {
const result = await createResourceGroup(appName + "-rg", "eastus");
expect(result).to.be.true;
process.env["AZURE_RESOURCE_GROUP_NAME"] = appName + "-rg";
// workaround free tier quota
await setStaticWebAppSkuNameToStandardBicep(projectPath, "dev");
const { success } = await Executor.provision(projectPath);
expect(success).to.be.true;
console.log(`[Successfully] provision for ${projectPath}`);
Expand All @@ -76,10 +79,6 @@ describe("SSO Tab with aad manifest enabled", () => {
const aad = AadValidator.init(context, false, M365Login);
await AadValidator.validate(aad);

// Validate Tab Frontend
const frontend = FrontendValidator.init(context);
await FrontendValidator.validateProvision(frontend);

const firstIdentifierUri =
"api://first.com/291fc1b5-1146-4d33-b7b8-ec4c441b6b33";
await setAadManifestIdentifierUrisV3(projectPath, firstIdentifierUri);
Expand Down

0 comments on commit 2350b35

Please sign in to comment.