Skip to content

emorris00/suitescript-mocks

Folders and files

NameName
Last commit message
Last commit date
Nov 1, 2023
Mar 26, 2024
Feb 13, 2025
Feb 13, 2025
Feb 13, 2025
Nov 15, 2022
Nov 15, 2022
Jan 13, 2025
Apr 13, 2023
Jan 15, 2023
Nov 1, 2023
Nov 15, 2022
Feb 13, 2025
Feb 13, 2025
Jan 15, 2023

Repository files navigation

SuiteScript Mocks

This is a set of mocks for unit testing Netsuite. Modules that don't have a mock written for them instead use a stub from https://github.com/KyleJonesWinsted/suitecloud-unit-testing-stubs.

Setup:

package.json type should not be module

jest.config.js

const SuiteCloudJestConfiguration = require("@oracle/suitecloud-unit-testing/jest-configuration/SuiteCloudJestConfiguration.js");
const { defaults } = require("jest-config");
const SuiteScriptMocks = require("suitescript-mocks");
const cliConfig = require("./suitecloud.config.js");

const config = SuiteCloudJestConfiguration.build({
    projectFolder: cliConfig.defaultProjectFolder,
    projectType: SuiteCloudJestConfiguration.ProjectType.ACP,
    customStubs: SuiteScriptMocks.stubs,
});

module.exports = {
    ...config,
    moduleFileExtensions: [...defaults.moduleFileExtensions, "cjs"],
};

suitecloud.config.js

const SuiteCloudJestUnitTestRunner = require("@oracle/suitecloud-unit-testing/services/SuiteCloudJestUnitTestRunner");

module.exports = {
    defaultProjectFolder: "src",
    commands: {
        "project:deploy": {
            beforeExecuting: async (args) => {
                await SuiteCloudJestUnitTestRunner.run({
                    // Jest configuration options.
                });
                return args;
            },
        },
    },
};

Usage:

The SuiteScriptMocks object exported by default by this package has a number of properties on it that control how the mocks work.

Property Description
outputDebugLogs Choose whether or not to output debug logs to the console.
outputErrorLogs Choose whether or not to output error logs to the console.
outputAuditLogs Choose whether or not to output audit logs to the console.
currentScript Details loaded when using runtime.getCurrentScript().
currentUser Details loaded when using runtime.getCurrentUser().
currentSession Details loaded when using runtime.getCurrentSession().
features Map of which netsuite features are enabled, used by runtime.isFeatureInEffect
sentEmails List of emails sent using N/email.
caches List of caches used by cache.getCache.
files List of files used by file.load, etc. Use File constructor when creating files to add to this.
createdFiles List of files that have been created.
savedFiles List of files that have been saved.
deletedFiles List of files that have been deleted.
records List of records used by record.load, etc. Use Record constructor when creating records to add to this.
createdRecords List of records that have been created.
savedRecords List of records that have been saved.
deletedRecords List of records that have been deleted.
searches List of searches used by search.load, etc. Use Search constructor when creating searches to add to this.
runSearches List of searches that have been run.
searchResults List of search results consumed by dynamically created and executed searches.
lookupFieldsResults List of results consumed by search.lookupFields.
taskStatuses List of task statuses used by task.checkStatus.
submittedTasks List of submitted tasks.
logs List of execution logs created by N/log.
dialogs List of dialogs created using N/ui/dialog.
dialogResults List of results consumed by dialog.confirm and dialog.create.
messages List of messages created using N/ui/message.
generateBytesResults List of results consumed by random.generateBytes.
generateIntResults List of results consumed by random.generateInt.
generateUUIDResults List of results consumed by random.generateUUID.
reset Function used to reset the state of the mocks library. Advisable to do before every test run, likely in a beforeEach.

For specific examples please look at the tests.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published