Login Page With Mocha

How to Write Assertions for LoginPage in a Sngle Script using moch and Javascript

Hi Rajesh. Please find the snippet below for the reference. Code sample is in Jest which is framework of Javascript. "“use strict”;

Object.defineProperty(exports, “__esModule”, { value: true }); exports.validate = validate; exports.checkNoUnwrappedItemOptionPairs = checkNoUnwrappedItemOptionPairs; exports.assumptionsNames = void 0;

var _plugin = require(“…/plugin”);

var _removed = require(“./removed”);

var _optionAssertions = require(“./option-assertions”);

const ROOT_VALIDATORS = { cwd: _optionAssertions.assertString, root: _optionAssertions.assertString, rootMode: _optionAssertions.assertRootMode, configFile: _optionAssertions.assertConfigFileSearch, caller: _optionAssertions.assertCallerMetadata, filename: _optionAssertions.assertString, filenameRelative: _optionAssertions.assertString, code: _optionAssertions.assertBoolean, ast: _optionAssertions.assertBoolean, cloneInputAst: _optionAssertions.assertBoolean, envName: _optionAssertions.assertString }; const BABELRC_VALIDATORS = { babelrc: _optionAssertions.assertBoolean, babelrcRoots: _optionAssertions.assertBabelrcSearch }; const NONPRESET_VALIDATORS = { extends: _optionAssertions.assertString, ignore: _optionAssertions.assertIgnoreList, only: _optionAssertions.assertIgnoreList, targets: _optionAssertions.assertTargets, browserslistConfigFile: _optionAssertions.assertConfigFileSearch, browserslistEnv: _optionAssertions.assertString }; const COMMON_VALIDATORS = { inputSourceMap: _optionAssertions.assertInputSourceMap, presets: _optionAssertions.assertPluginList, plugins: _optionAssertions.assertPluginList, passPerPreset: _optionAssertions.assertBoolean, assumptions: _optionAssertions.assertAssumptions, env: assertEnvSet, overrides: assertOverridesList, test: _optionAssertions.assertConfigApplicableTest, include: _optionAssertions.assertConfigApplicableTest, exclude: _optionAssertions.assertConfigApplicableTest, retainLines: _optionAssertions.assertBoolean, comments: _optionAssertions.assertBoolean, shouldPrintComment: _optionAssertions.assertFunction, compact: _optionAssertions.assertCompact, minified: _optionAssertions.assertBoolean, auxiliaryCommentBefore: _optionAssertions.assertString, auxiliaryCommentAfter: _optionAssertions.assertString, sourceType: _optionAssertions.assertSourceType, wrapPluginVisitorMethod: _optionAssertions.assertFunction, highlightCode: _optionAssertions.assertBoolean, sourceMaps: _optionAssertions.assertSourceMaps, sourceMap: _optionAssertions.assertSourceMaps, sourceFileName: _optionAssertions.assertString, sourceRoot: _optionAssertions.assertString, parserOpts: _optionAssertions.assertObject, generatorOpts: _optionAssertions.assertObject }; { Object.assign(COMMON_VALIDATORS, { getModuleId: _optionAssertions.assertFunction, moduleRoot: _optionAssertions.assertString, moduleIds: _optionAssertions.assertBoolean, moduleId: _optionAssertions.assertString }); } const assumptionsNames = new Set([“arrayLikeIsIterable”, “constantReexports”, “constantSuper”, “enumerableModuleMeta”, “ignoreFunctionLength”, “ignoreToPrimitiveHint”, “iterableIsArray”, “mutableTemplateObject”, “noClassCalls”, “noDocumentAll”, “noNewArrows”, “objectRestNoSymbols”, “privateFieldsAsProperties”, “pureGetters”, “setClassMethods”, “setComputedProperties”, “setPublicClassFields”, “setSpreadProperties”, “skipForOfIteratorClosing”, “superIsCallableConstructor”]); exports.assumptionsNames = assumptionsNames;

function getSource(loc) { return loc.type === “root” ? loc.source : getSource(loc.parent); }

function validate(type, opts) { return validateNested({ type: “root”, source: type }, opts); }

function validateNested(loc, opts) { const type = getSource(loc); assertNoDuplicateSourcemap(opts); Object.keys(opts).forEach(key => { const optLoc = { type: “option”, name: key, parent: loc };

if (type === "preset" && NONPRESET_VALIDATORS[key]) {
  throw new Error(`${(0, _optionAssertions.msg)(optLoc)} is not allowed in preset options`);
}

if (type !== "arguments" && ROOT_VALIDATORS[key]) {
  throw new Error(`${(0, _optionAssertions.msg)(optLoc)} is only allowed in root programmatic options`);
}

if (type !== "arguments" && type !== "configfile" && BABELRC_VALIDATORS[key]) {
  if (type === "babelrcfile" || type === "extendsfile") {
    throw new Error(`${(0, _optionAssertions.msg)(optLoc)} is not allowed in .babelrc or "extends"ed files, only in root programmatic options, ` + `or babel.config.js/config file options`);
  }

  throw new Error(`${(0, _optionAssertions.msg)(optLoc)} is only allowed in root programmatic options, or babel.config.js/config file options`);
}

const validator = COMMON_VALIDATORS[key] || NONPRESET_VALIDATORS[key] || BABELRC_VALIDATORS[key] || ROOT_VALIDATORS[key] || throwUnknownError;
validator(optLoc, opts[key]);

}); return opts; }

function throwUnknownError(loc) { const key = loc.name;

if (_removed.default[key]) { const { message, version = 5 } = _removed.default[key]; throw new Error(Using removed Babel ${version} option: ${(0, _optionAssertions.msg)(loc)} - ${message}); } else { const unknownOptErr = new Error(Unknown option: ${(0, _optionAssertions.msg)(loc)}. Check out https://babeljs.io/docs/en/babel-core/#options for more information about options.); unknownOptErr.code = “BABEL_UNKNOWN_OPTION”; throw unknownOptErr; } }

function has(obj, key) { return Object.prototype.hasOwnProperty.call(obj, key); }

function assertNoDuplicateSourcemap(opts) { if (has(opts, “sourceMap”) && has(opts, “sourceMaps”)) { throw new Error(“.sourceMap is an alias for .sourceMaps, cannot use both”); } }

function assertEnvSet(loc, value) { if (loc.parent.type === “env”) { throw new Error(${(0, _optionAssertions.msg)(loc)} is not allowed inside of another .env block); }

const parent = loc.parent; const obj = (0, _optionAssertions.assertObject)(loc, value);

if (obj) { for (const envName of Object.keys(obj)) { const env = (0, _optionAssertions.assertObject)((0, _optionAssertions.access)(loc, envName), obj[envName]); if (!env) continue; const envLoc = { type: “env”, name: envName, parent }; validateNested(envLoc, env); } }

return obj; }

function assertOverridesList(loc, value) { if (loc.parent.type === “env”) { throw new Error(${(0, _optionAssertions.msg)(loc)} is not allowed inside an .env block); }

if (loc.parent.type === “overrides”) { throw new Error(${(0, _optionAssertions.msg)(loc)} is not allowed inside an .overrides block); }

const parent = loc.parent; const arr = (0, _optionAssertions.assertArray)(loc, value);

if (arr) { for (const [index, item] of arr.entries()) { const objLoc = (0, _optionAssertions.access)(loc, index); const env = (0, _optionAssertions.assertObject)(objLoc, item); if (!env) throw new Error(${(0, _optionAssertions.msg)(objLoc)} must be an object); const overridesLoc = { type: “overrides”, index, parent }; validateNested(overridesLoc, env); } }

return arr; }

function checkNoUnwrappedItemOptionPairs(items, index, type, e) { if (index === 0) return; const lastItem = items[index - 1]; const thisItem = items[index];

if (lastItem.file && lastItem.options === undefined && typeof thisItem.value === “object”) { e.message += \n- Maybe you meant to use\n + "${type}s": [\n ["${lastItem.file.request}", ${JSON.stringify(thisItem.value, undefined, 2)}]\n]\n + To be a valid ${type}, its name and options should be wrapped in a pair of brackets; } } "

1 Like