@salesforce/salesforcedx-vscode-test-tools
Version:
Test automation framework for Salesforce Extensions for VS Code
70 lines • 3.35 kB
JavaScript
;
/*
* Copyright (c) 2025, salesforce.com, inc.
* All rights reserved.
* Licensed under the BSD 3-Clause license.
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.createVisualforcePage = createVisualforcePage;
const promises_1 = __importDefault(require("fs/promises"));
const path_1 = require("path");
const miscellaneous_1 = require("../core/miscellaneous");
const textEditorView_1 = require("../ui-interaction/textEditorView");
const workbench_1 = require("../ui-interaction/workbench");
const fileSystem_1 = require("../system-operations/fileSystem");
/**
* Creates a Visualforce page named 'FooPage' with a controller reference
* The page includes a simple form with an account name input field and save button
*/
async function createVisualforcePage(folder) {
(0, miscellaneous_1.log)(`calling createVisualforcePage()`);
// Define the page content
const pageText = [
`<apex:page controller="myController" tabStyle="Account">`,
`\t<apex:form>`,
`\t`,
`\t\t<apex:pageBlock title="Congratulations {!$User.FirstName}">`,
`\t\t\tYou belong to Account Name: <apex:inputField value="{!account.name}"/>`,
`\t\t\t<apex:commandButton action="{!save}" value="save"/>`,
`\t\t</apex:pageBlock>`,
`\t</apex:form>`,
`</apex:page>`
].join('\n');
// Define metadata content
const metaContent = [
`<?xml version="1.0" encoding="UTF-8"?>`,
`<ApexPage xmlns="http://soap.sforce.com/2006/04/metadata">`,
` <apiVersion>64.0</apiVersion>`,
` <availableInTouch>false</availableInTouch>`,
` <confirmationTokenRequired>false</confirmationTokenRequired>`,
` <label>FooPage</label>`,
`</ApexPage>`
].join('\n');
// Create the file paths
const filePath = (0, path_1.join)(folder, 'FooPage.page');
const metaFilePath = (0, path_1.join)(folder, 'FooPage.page-meta.xml');
try {
// Ensure the folder exists before writing files
await promises_1.default.mkdir(folder, { recursive: true });
// Write the Visualforce page file using fs.writeFile
(0, fileSystem_1.createOrOverwriteFile)(filePath, pageText);
(0, miscellaneous_1.log)(`Visualforce page FooPage.page created successfully at ${filePath}`);
// Write the metadata file using fs.writeFile
(0, fileSystem_1.createOrOverwriteFile)(metaFilePath, metaContent);
(0, miscellaneous_1.log)(`Visualforce page metadata FooPage.page-meta.xml created successfully at ${metaFilePath}`);
}
catch (error) {
(0, miscellaneous_1.log)(`Error creating Visualforce page FooPage: ${error}`);
throw error;
}
// Open the file in the text editor
await (0, miscellaneous_1.pause)(miscellaneous_1.Duration.seconds(1));
const workbench = (0, workbench_1.getWorkbench)();
await (0, textEditorView_1.getTextEditor)(workbench, 'FooPage.page');
await (0, miscellaneous_1.pause)(miscellaneous_1.Duration.seconds(1));
}
//# sourceMappingURL=visualforceUtils.js.map