Best JavaScript code snippet using playwright-internal
util.test.js
Source:util.test.js
...278 assert(a.sub.deleteThis !== undefined); // not deleted!!! Original logic, could be a bug279 });280}); // extend routines281//282// The important thing with mergeOptions() is that 'enabled' is always set in target option.283//284describe('mergeOptions', function () {285 it('handles good input without global options', function () {286 var options = {287 someValue: "silly value",288 aBoolOption: false,289 anObject: {290 answer:42291 },292 anotherObject: {293 enabled: false,294 },295 merge: null296 };297 // Case with empty target298 var mergeTarget = {};299 util.mergeOptions(mergeTarget, options, 'someValue');300 assert(mergeTarget.someValue === undefined, 'Non-object option should not be copied');301 assert(mergeTarget.anObject === undefined);302 util.mergeOptions(mergeTarget, options, 'aBoolOption');303 assert(mergeTarget.aBoolOption !== undefined, 'option aBoolOption should now be an object');304 assert(mergeTarget.aBoolOption.enabled === false, 'enabled value option aBoolOption should have been copied into object');305 util.mergeOptions(mergeTarget, options, 'anObject');306 assert(mergeTarget.anObject !== undefined, 'Option object is not copied');307 assert(mergeTarget.anObject.answer === 42);308 assert(mergeTarget.anObject.enabled === true);309 util.mergeOptions(mergeTarget, options, 'anotherObject');310 assert(mergeTarget.anotherObject.enabled === false, 'enabled value from options must have priority');311 util.mergeOptions(mergeTarget, options, 'merge');312 assert(mergeTarget.merge === undefined, 'Explicit null option should not be copied, there is no global option for it');313 // Case with non-empty target314 mergeTarget = {315 someValue: false,316 aBoolOption: true,317 anObject: {318 answer: 49319 },320 anotherObject: {321 enabled: true,322 },323 merge: 'hello'324 };325 util.mergeOptions(mergeTarget, options, 'someValue');326 assert(mergeTarget.someValue === false, 'Non-object option should not be copied');327 assert(mergeTarget.anObject.answer === 49, 'Sibling option should not be changed');328 util.mergeOptions(mergeTarget, options, 'aBoolOption');329 assert(mergeTarget.aBoolOption !== true, 'option enabled should have been overwritten');330 assert(mergeTarget.aBoolOption.enabled === false, 'enabled value option aBoolOption should have been copied into object');331 util.mergeOptions(mergeTarget, options, 'anObject');332 assert(mergeTarget.anObject.answer === 42);333 assert(mergeTarget.anObject.enabled === true);334 util.mergeOptions(mergeTarget, options, 'anotherObject');335 assert(mergeTarget.anotherObject !== undefined, 'Option object is not copied');336 assert(mergeTarget.anotherObject.enabled === false, 'enabled value from options must have priority');337 util.mergeOptions(mergeTarget, options, 'merge');338 assert(mergeTarget.merge === 'hello', 'Explicit null-option should not be copied, already present in target');339 });340 it('gracefully handles bad input', function () {341 var mergeTarget = {};342 var options = {343 merge: null344 };345 var errMsg = 'Non-object parameters should not be accepted';346 assert.throws(() => util.mergeOptions(null, options, 'anything'), Error, errMsg);347 assert.throws(() => util.mergeOptions(undefined, options, 'anything'), Error, errMsg);348 assert.throws(() => util.mergeOptions(42, options, 'anything'), Error, errMsg);349 assert.throws(() => util.mergeOptions(mergeTarget, null, 'anything'), Error, errMsg);350 assert.throws(() => util.mergeOptions(mergeTarget, undefined, 'anything'), Error, errMsg);351 assert.throws(() => util.mergeOptions(mergeTarget, 42, 'anything'), Error, errMsg);352 assert.throws(() => util.mergeOptions(mergeTarget, options, null), Error, errMsg);353 assert.throws(() => util.mergeOptions(mergeTarget, options, undefined), Error, errMsg);354 assert.throws(() => util.mergeOptions(mergeTarget, options, 'anything', null), Error, errMsg);355 assert.throws(() => util.mergeOptions(mergeTarget, options, 'anything', 'not an object'), Error, errMsg);356 util.mergeOptions(mergeTarget, options, 'iDontExist');357 assert(mergeTarget.iDontExist === undefined);358 });359 it('handles good input with global options', function () {360 var mergeTarget = {361 };362 var options = {363 merge: null,364 missingEnabled: {365 answer: 42366 },367 alsoMissingEnabled: { // has no enabled in globals368 answer: 42369 }370 };371 var globalOptions = {372 merge: {373 enabled: false374 },375 missingEnabled: {376 enabled: false377 }378 };379 util.mergeOptions(mergeTarget, options, 'merge', globalOptions);380 assert(mergeTarget.merge.enabled === false, "null-option should create an empty target object");381 util.mergeOptions(mergeTarget, options, 'missingEnabled', globalOptions);382 assert(mergeTarget.missingEnabled.enabled === false);383 util.mergeOptions(mergeTarget, options, 'alsoMissingEnabled', globalOptions);384 assert(mergeTarget.alsoMissingEnabled.enabled === true);385 });386}); // mergeOptions...
plugins.js
Source:plugins.js
...6 value: '',7 opacity: 0.85,8 repeat: false,9 }10 return mergeOptions(defaultOptions, userConfig.bodyBackground, devOptions)11}12export function barrageConfig(devOptions) {13 const defaultOptions = {14 enable: false,15 opacity: 0.6,16 fontSize: '',17 colors: [],18 barrages: [],19 indexBarrages: [],20 postPageBarrages: [],21 }22 return mergeOptions(defaultOptions, userConfig.barrage, devOptions)23}24export function catalogConfig(devOptions) {25 const defaultOptions = {26 enable: true,27 position: 'left',28 }29 return mergeOptions(defaultOptions, userConfig.catalog, devOptions)30}31export function chartConfig(devOptions) {32 const defaultOptions = {33 enable: false,34 labels: [35 'Vue',36 'React',37 'Flutter',38 'Java',39 'NodeJs',40 'TypeScript',41 'CSS',42 ],43 datasets: [44 {45 label: 'My First Chart',46 data: [65, 59, 90, 81, 56, 55, 40],47 fill: true,48 backgroundColor: 'rgba(255, 99, 132, 0.2)',49 borderColor: 'rgb(255, 99, 132)',50 pointBackgroundColor: 'rgb(255, 99, 132)',51 pointBorderColor: '#fff',52 pointHoverBackgroundColor: '#fff',53 pointHoverBorderColor: 'rgb(255, 99, 132)',54 },55 {56 label: 'My Second Dataset',57 data: [28, 48, 40, 19, 96, 27, 100],58 fill: true,59 backgroundColor: 'rgba(54, 162, 235, 0.2)',60 borderColor: 'rgb(54, 162, 235)',61 pointBackgroundColor: 'rgb(54, 162, 235)',62 pointBorderColor: '#fff',63 pointHoverBackgroundColor: '#fff',64 pointHoverBorderColor: 'rgb(54, 162, 235)',65 },66 ],67 }68 return mergeOptions(defaultOptions, userConfig.charts, devOptions)69}70export function clickConfig(devOptions) {71 const defaultOptions = {72 enable: false,73 colors: [],74 size: 30,75 maxCount: 10,76 }77 return mergeOptions(defaultOptions, userConfig.click, devOptions)78}79export function donationConfig(devOptions) {80 const defaultOptions = {81 enable: false,82 qrcodes: [],83 }84 return mergeOptions(defaultOptions, userConfig.donation, devOptions)85}86export function toolsConfig(devOptions) {87 const defaultOptions = {88 enable: true,89 initialOpen: true,90 mobileAutoClose: true,91 }92 return mergeOptions(defaultOptions, userConfig.tools, devOptions)93}94export function emojiConfig(devOptions) {95 const emojiList = [96 {97 value: 'ð¤£',98 label: 'ç¬å',99 },100 {101 value: 'ð',102 label: '大ç¬',103 },104 {105 value: 'ð
',106 label: 'è¦ç¬',107 },108 {109 value: 'ð',110 label: 'æç¼ç¬',111 },112 {113 value: 'ð',114 label: 'å¾æ',115 },116 {117 value: 'ð',118 label: 'å¾®ç¬',119 },120 {121 value: 'ð',122 label: 'é
·ï¼',123 },124 {125 value: 'ð',126 label: 'è±ç´',127 },128 {129 value: 'ð',130 label: 'åµåµ',131 },132 {133 value: 'ð¤©',134 label: '好å´æå¦',135 },136 {137 value: 'ð¤',138 label: 'æè',139 },140 {141 value: 'ð',142 label: 'ç½ç¼',143 },144 {145 value: 'ð',146 label: 'ç¥ç¥ç¥',147 },148 {149 value: 'ð²',150 label: 'åä½',151 },152 {153 value: 'ð',154 label: '大å',155 },156 {157 value: 'ð¤¯',158 label: '头ç¸äº',159 },160 {161 value: 'ð°',162 label: 'å·æ±',163 },164 {165 value: 'ð±',166 label: 'åæ»äº',167 },168 {169 value: 'ð¤ª',170 label: 'ç¥ç¥ç¥',171 },172 {173 value: 'ðµ',174 label: 'æ',175 },176 {177 value: 'ð¡',178 label: 'æ¤æ',179 },180 {181 value: 'ð¥³',182 label: 'ç¥è´º',183 },184 {185 value: 'ð¤¡',186 label: 'å°ä¸ç«æ¯æ',187 },188 {189 value: 'ð¤«',190 label: 'å~',191 },192 {193 value: 'ð',194 label: 'ç´',195 },196 {197 value: 'ð¤',198 label: 'ç¬ç¬ä¸è¯´è¯',199 },200 {201 value: 'ð',202 label: 'ç',203 },204 {205 value: 'ðº',206 label: 'å¤é
',207 },208 {209 value: '(=ã»Ïã»=)',210 label: '',211 },212 {213 value: '(。・Ï・。)',214 label: '',215 },216 ]217 const defaultOptions = {218 enable: true,219 buttonIcon: 'ðº',220 emojiList,221 }222 return mergeOptions(defaultOptions, userConfig.emoji, devOptions)223}224export function highlightConfig(devOptions) {225 const defaultOptions = {226 dark: 'atomOneDark',227 light: 'atomOneLight',228 }229 return mergeOptions(defaultOptions, userConfig.highLight, devOptions)230}231export function imageboxConfig(devOptions) {232 const defaultOptions = {233 enable: true,234 }235 return mergeOptions(defaultOptions, userConfig.imagebox, devOptions)236}237export function linenumbersConfig(devOptions) {238 const defaultOptions = {239 enable: true,240 }241 return mergeOptions(defaultOptions, userConfig.linenumbers, devOptions)242}243export function live2dConfig(devOptions) {244 const defaultOptions = {245 enable: false,246 page: 'all',247 agent: 'pc',248 model: 'haru-01',249 width: 150,250 height: 200,251 position: 'left',252 gap: 'default',253 }254 return mergeOptions(defaultOptions, userConfig.live2d, devOptions)255}256export function lockConfig(devOptions) {257 const defaultOptions = {258 enable: false,259 background: '',260 strings: [],261 }262 return mergeOptions(defaultOptions, userConfig.lock, devOptions)263}264export function darkModeConfig(devOptions) {265 const defaultOptions = {266 enable: true,267 darkDefault: false,268 autoDark: false,269 autoLight: false,270 }271 return mergeOptions(defaultOptions, userConfig.darkMode, devOptions)272}273export function noticeConfig(devOptions) {274 const defaultOptions = {275 enable: false,276 text: [],277 }278 return mergeOptions(defaultOptions, userConfig.notice, devOptions)279}280export function musicPlayerConfig(devOptions) {281 const defaultOptions = {282 enable: true,283 page: 'all',284 agent: 'pc',285 autoplay: false,286 volume: 0.4,287 lrc: {288 enable: false, // å¯ç¨æè¯289 type: 1, // 1 -> å符串æè¯ 3 -> url æè¯290 color: '', // é¢è²291 },292 audio: [293 {294 name: '404 not found',295 artist: 'REOL',296 url:297 'https://guangzan.gitee.io/imagehost/awescnb/music/demo4.mp3',298 cover:299 'https://guangzan.gitee.io/imagehost/awescnb/music/demo.jpg',300 lrc: ``,301 },302 ],303 }304 return mergeOptions(defaultOptions, userConfig.musicPlayer, devOptions)305}306export function postBottomimageConfig(devOptions) {307 const defaultOptions = {308 enable: false,309 img: '',310 height: '',311 }312 return mergeOptions(defaultOptions, userConfig.postBottomimage, devOptions)313}314export function postSignatureConfig(devOptions) {315 const defaultOptions = {316 enable: true,317 enableLicense: true,318 content: [],319 licenseName: '',320 licenseLink: '',321 }322 return mergeOptions(defaultOptions, userConfig.postSignature, devOptions)323}324export function postTopimageConfig(devOptions) {325 const defaultOptions = {326 enable: true,327 fixed: false,328 imgs: [],329 }330 return mergeOptions(defaultOptions, userConfig.postTopimage, devOptions)331}332export function topProgressConfig(devOptions) {333 const defaultOptions = {334 enable: false,335 page: 'all',336 agent: 'pc',337 background: '#FFB3CC',338 height: '5px',339 }340 return mergeOptions(defaultOptions, userConfig.topProgress, devOptions)341}342export function qrcodeConfig(devOptions) {343 const defaultOptions = {344 enable: false,345 img: '',346 desc: '',347 }348 return mergeOptions(defaultOptions, userConfig.qrcode, devOptions)349}350export function signatureConfig(devOptions) {351 const defaultOptions = {352 enable: false,353 contents: [],354 }355 return mergeOptions(defaultOptions, userConfig.signature, devOptions)356}357export function notationConfig(devOptions) {358 const defaultOptions = {359 enable: false,360 }361 return mergeOptions(defaultOptions, userConfig.notation, devOptions)...
Commands.js
Source:Commands.js
...36 this.optionsProcessor.processOptions(input);37 this.nativeCommandsSender.setDefaultOptions(input);38 this.commandsObserver.notify('setDefaultOptions', { options });39 }40 mergeOptions(componentId, options) {41 const input = _.cloneDeep(options);42 this.optionsProcessor.processOptions(input);43 this.nativeCommandsSender.mergeOptions(componentId, input);44 this.commandsObserver.notify('mergeOptions', { componentId, options });45 }46 showModal(layout) {47 const layoutCloned = _.cloneDeep(layout);48 const layoutNode = this.layoutTreeParser.parse(layoutCloned);49 const commandId = this.uniqueIdProvider.generate('showModal');50 this.commandsObserver.notify('showModal', { commandId, layout: layoutNode });51 this.layoutTreeCrawler.crawl(layoutNode);52 const result = this.nativeCommandsSender.showModal(commandId, layoutNode);53 return result;54 }55 dismissModal(componentId, mergeOptions) {56 const commandId = this.uniqueIdProvider.generate('dismissModal');57 const result = this.nativeCommandsSender.dismissModal(commandId, componentId, mergeOptions);...
options.js
Source:options.js
...11 defaults = suitcss.__get__('defaults');12 });13 it('should use default options when nothing is passed', () => {14 const keys = Object.keys(defaults);15 expect(mergeOptions({})).to.have.keys(keys);16 expect(mergeOptions()).to.have.keys(keys);17 expect(mergeOptions({}).use).to.eql(defaults.use);18 expect(mergeOptions().use).to.eql(defaults.use);19 });20 it('should allow an import root to be set', () => {21 const opts = mergeOptions({root: 'test/root'});22 expect(opts['postcss-easy-import'].root).to.equal('test/root');23 });24 it('should allow stylelint to be disabled', () => {25 const opts = mergeOptions({lint: false});26 expect(opts.lint).to.be.false;27 });28 it('should allow a minify option to be set', () => {29 const opts = mergeOptions({minify: true});30 expect(opts.minify).to.be.true;31 });32 it('should merge config options with existing defaults', () => {33 const autoprefixer = {browsers: ['> 1%', 'IE 7'], cascade: false};34 const opts = mergeOptions({35 root: 'test/root',36 autoprefixer37 });38 expect(opts.use).to.eql([39 'postcss-custom-properties',40 'postcss-calc',41 'postcss-color-function',42 'postcss-custom-media',43 'postcss-apply'44 ]);45 expect(opts.autoprefixer).to.eql(autoprefixer);46 expect(opts['postcss-easy-import'].root).to.equal('test/root');47 });48});49describe('re-ordering the `use` array of postcss plugins', () => {50 let mergeOptions;51 beforeEach(() => {52 mergeOptions = suitcss.__get__('mergeOptions');53 });54 it('should allow reordering of use array and remove duplicates', () => {55 const opts = mergeOptions({56 use: ['postcss-at2x', 'postcss-easy-import', 'postcss-calc']57 });58 expect(opts.use).to.eql([59 'postcss-custom-properties',60 'postcss-color-function',61 'postcss-custom-media',62 'postcss-apply',63 'postcss-at2x',64 'postcss-calc'65 ]);66 });67 it('should just append plugins if no duplicates are used', () => {68 const opts = mergeOptions({69 use: ['postcss-at2x', 'postcss-property-lookup']70 });71 expect(opts.use).to.eql([72 'postcss-custom-properties',73 'postcss-calc',74 'postcss-color-function',75 'postcss-custom-media',76 'postcss-apply',77 'postcss-at2x',78 'postcss-property-lookup'79 ]);80 });81});82describe('using the `onImport` option in postcss-import', () => {...
cli.ts
Source:cli.ts
1#!/usr/bin/env node2import commandLineArgs, {3 CommandLineOptions,4 OptionDefinition,5} from "command-line-args";6import commandLineUsage from "command-line-usage";7import * as Main from "./main";8const VERSION_NUM = "1.0.8";9const sections = [10 {11 header: "Fangirl",12 content: "Makes it easy to switch between multiple repos and manage them",13 },14 {15 header: "Synopsis",16 content: "$ fangirl <command> <options>",17 },18 {19 header: "Command List",20 content: [21 {22 name: "install",23 summary: "Install all of the dependencies within each package",24 },25 {26 name: "list",27 summary: "List all repos that have been detected",28 },29 { name: "help", summary: "Display command usage about Fangirl." },30 {31 name: "link",32 summary: "Link repos that depend on each other together",33 },34 { name: "unlink", summary: "Unlink all repos that depend on each other" },35 { name: "run", summary: "Run a script across multiple packages " },36 {37 name: "checkout",38 summary: "Creates and checkout a branch in all repos",39 },40 {41 name: "branch",42 summary: "tells you the current branch",43 },44 {45 name: "drop",46 summary: "Drops any uncommited changes in the current branch",47 },48 {49 name: "update",50 summary: "Updates linked repos with a patch, and its dependents",51 },52 ],53 },54 {55 header: "Helpful flags",56 optionList: [57 {58 name: "packages",59 description:60 "Scopes a command down to run only for the specified packages",61 alias: "p",62 type: String,63 multiple: true,64 },65 {66 name: "convertMaster",67 alias: "m",68 description: "Try converting master to main when checking out",69 type: Boolean,70 },71 ],72 },73];74const usage = commandLineUsage(sections);75/* first - parse the main command */76const mainDefinitions = [{ name: "command", defaultOption: true }];77const mainOptions = commandLineArgs(mainDefinitions, {78 stopAtFirstUnknown: true,79});80const argv = mainOptions._unknown || [];81switch (mainOptions.command) {82 case "list":83 {84 // list of all the packages found as defined in package.json85 Main.listAllPackages();86 }87 break;88 case "version":89 {90 console.log(VERSION_NUM);91 }92 break;93 case "install":94 {95 const mergeDefinitions: OptionDefinition[] = [96 {97 name: "packages",98 alias: "p",99 type: String,100 multiple: true,101 },102 ];103 const mergeOptions = commandLineArgs(mergeDefinitions, { argv });104 Main.install(mergeOptions.packages);105 }106 break;107 case "link":108 {109 Main.handleSymLinks(false);110 }111 break;112 case "unlink":113 {114 Main.handleSymLinks(true);115 }116 break;117 case "branch":118 {119 const mergeDefinitions: OptionDefinition[] = [120 {121 name: "packages",122 alias: "p",123 type: String,124 multiple: true,125 },126 ];127 const mergeOptions = commandLineArgs(mergeDefinitions, { argv });128 Main.getCurrentBranch(mergeOptions.packages);129 }130 break;131 case "checkout":132 {133 const mainOptions = commandLineArgs(mainDefinitions, {134 argv,135 stopAtFirstUnknown: true,136 });137 const branchName = mainOptions.command;138 const subOptions = [139 {140 name: "convertMaster",141 alias: "m",142 type: Boolean,143 },144 {145 name: "packages",146 alias: "p",147 type: String,148 multiple: true,149 },150 ];151 const mergeOptions = commandLineArgs(subOptions, {152 argv: mainOptions._unknown || [],153 stopAtFirstUnknown: true,154 });155 Main.checkOutBranch(156 branchName,157 mergeOptions.convertMaster,158 mergeOptions.packages159 );160 }161 break;162 case "run":163 {164 const mainOptions = commandLineArgs(mainDefinitions, {165 argv,166 stopAtFirstUnknown: true,167 });168 const script = mainOptions.command;169 const subOptions = [170 {171 name: "packages",172 alias: "p",173 type: String,174 multiple: true,175 },176 {177 name: "dry-run",178 alias: "d",179 type: Boolean,180 },181 {182 name: "parallel",183 type: Boolean,184 },185 ];186 const mergeOptions = commandLineArgs(subOptions, {187 argv: mainOptions._unknown || [],188 stopAtFirstUnknown: true,189 });190 Main.runAll(191 `run ${script}`,192 mergeOptions.parallel,193 mergeOptions.dryRun,194 mergeOptions.packages195 );196 }197 break;198 case "update":199 {200 const mergeDefinitions: OptionDefinition[] = [201 {202 name: "packages",203 alias: "p",204 type: String,205 multiple: true,206 },207 ];208 const mergeOptions = commandLineArgs(mergeDefinitions, { argv });209 Main.updateLinkedVersions(mergeOptions.packages);210 }211 break;212 case "drop":213 {214 const mergeDefinitions: OptionDefinition[] = [215 {216 name: "packages",217 alias: "p",218 type: String,219 multiple: true,220 },221 {222 name: "dryRun",223 alias: "d",224 type: Boolean,225 },226 ];227 const mergeOptions = commandLineArgs(mergeDefinitions, { argv });228 console.log(mergeOptions);229 Main.dropUncommitedChanges(mergeOptions.packages, mergeOptions.dryRun);230 }231 break;232 case "help":233 {234 console.log(usage);235 }236 break;237 default: {238 console.log("Unknown command. Try running: fangirl help");239 }...
validators.js
Source:validators.js
...16const exists = (field, options) => {17 let defaultObject = {18 errorMessage: isRequiredErrorMessage(field),19 };20 return mergeOptions(defaultObject, options);21};22const notEmpty = (field, options) => {23 let defaultObject = {24 errorMessage: isEmptyErrorMessage(field),25 };26 return mergeOptions(defaultObject, options);27};28const isInt = (field, options) => {29 let defaultObject = { errorMessage: isNotTypeErrorMessage(field, "integer") };30 return mergeOptions(defaultObject, options);31};32const isDate = (field, options) => {33 let defaultObject = {34 errorMessage: isNotTypeErrorMessage(field, "date"),35 };36 return mergeOptions(defaultObject, options);37};38const isEmail = (field, options) => {39 let defaultObject = {40 errorMessage: invalidFormatErrorMessage(field),41 };42 return mergeOptions(defaultObject, options);43};44const existResourceById = (field, model, options) => {45 let defaultObject = {46 options: (value, { req, location, path }) => {47 return model.findByPk(value).then((result) => {48 if (result === null || result === undefined) {49 return Promise.reject(notFoundErrorMessage(field, value));50 }51 });52 },53 };54 return mergeOptions(defaultObject, options);55};56const existResourceByField = (field, model, options) => {57 function createWhere(value) {58 const where = {};59 Object.defineProperty(where, field, {60 value: value,61 writable: true,62 enumerable: true,63 configurable: true,64 });65 return where;66 }67 let defaultObject = {68 options: (value, { req, location, path }) => {69 return model70 .findOne({71 where: createWhere(value),72 })73 .then((result) => {74 if (!!result) {75 return Promise.reject(existsErrorMessage(field, value));76 }77 });78 },79 };80 return mergeOptions(defaultObject, options);81};82const isMaxLength = (field, max, options) => {83 let defaultObject = {84 errorMessage: maxLengthErrorMessage(field, max),85 options: {86 max: max,87 },88 };89 return mergeOptions(defaultObject, options);90};91const isNotFormat = (field, format, options) => {92 let defaultObject = {93 errorMessage: isNotFormatErrorMessage(field, format),94 options: (value, { req, location, path }) => {95 return mimeTypeRegex.test(value);96 },97 };98 return mergeOptions(defaultObject, options);99};100const isNumericAndNotString = (field, options) => {101 let defaultObject = {102 negated: true,103 errorMessage: isNotTypeErrorMessage(field, "string"),104 };105 return mergeOptions(defaultObject, options);106};107const isInEnumList = (field, enumList, options) => {108 let defaultObject = {109 errorMessage: isNotInEnumListErrorMessage(field, enumList),110 options: (value, { req, location, path }) => {111 return enumList.find((el) => el === value);112 },113 };114 return mergeOptions(defaultObject, options);115};116module.exports = {117 exists,118 notEmpty,119 isInt,120 isDate,121 existResourceById,122 existResourceByField,123 isMaxLength,124 isNotFormat,125 isNumericAndNotString,126 isEmail,127 isInEnumList,128};
option-values.js
Source:option-values.js
...18 /regexp/,19 function () {},20 null21 ].forEach(value => {22 t.throws(() => mergeOptions(value), {instanceOf: TypeError}, toString(value));23 t.throws(() => mergeOptions({}, value), {instanceOf: TypeError}, toString(value));24 t.throws(() => mergeOptions({foo: 'bar'}, value), {instanceOf: TypeError}, toString(value));25 t.throws(() => mergeOptions(Object.create(null), value), {instanceOf: TypeError}, toString(value));26 });27 await t.throwsAsync(promise);28});29test('support `undefined` Option Values', t => {30 t.deepEqual(mergeOptions({foo: true}, {foo: undefined}), {foo: undefined});31});32test('support undefined as target, null as source', t => {33 const result = mergeOptions({foo: undefined}, {foo: null});34 t.is(result.foo, null);35});36test('support null as target, undefined as source', t => {37 const result = mergeOptions({foo: null}, {foo: undefined});38 t.is(result.foo, undefined);39});40test('support Date as target, Number as source', t => {41 const result = mergeOptions({date: new Date()}, {date: 990741600000});42 t.is(result.date, 990741600000);43 t.is(result.date.constructor, Number);44});45test('support Date as target, Date as source', t => {46 const result = mergeOptions({date: new Date()}, {date: new Date(990741600000)});47 t.is(result.date.getTime(), 990741600000);48 t.is(result.date.constructor, Date);49});50test('support RegExp as target, String as source', t => {51 const result = mergeOptions({regexp: /reg/}, {regexp: 'string'});52 t.is(result.regexp.constructor, String);53 t.is(result.regexp, 'string');54});55test('support RegExp as target, RegExp as source', t => {56 const result = mergeOptions({regexp: /reg/}, {regexp: /new/});57 t.is(result.regexp.constructor, RegExp);58 t.is(result.regexp.test('new'), true);59});60test('support Promise as target, Number as source', t => {61 const promise1 = Promise.resolve(666);62 const promise2 = 42;63 const result = mergeOptions({promise: promise1}, {promise: promise2});64 t.is(result.promise.constructor, Number);65 t.is(result.promise, 42);66});67test('support Promise as target, Promise as source', async t => {68 const promise1 = Promise.resolve(666);69 const promise2 = Promise.resolve(42);70 const result = mergeOptions({promise: promise1}, {promise: promise2});71 t.is(result.promise.constructor, Promise);72 t.is(await result.promise, 42);73});74test('support user-defined object as target, user-defined object as source', t => {75 function User(firstName) {76 this.firstName = firstName;77 }78 const alice = new User('Alice');79 const bob = new User('Bob');80 const result = mergeOptions({user: alice}, {user: bob});81 t.is(result.user.constructor, User);82 t.is(result.user, bob);83 t.is(result.user.firstName, 'Bob');...
PdfInput.js
Source:PdfInput.js
1import { inputType } from "./InputType.js";2import { Input } from "./Input.js";3/**4 * Represents a pdf input.5 */6export class PdfInput extends Input {7 /**Gets or sets the merge options `MergeOptions` */8 mergeOptions;9 /**Gets or sets the start page. */10 startPage;11 /** Gets or sets the page count.*/12 pageCount;13 /**14 * Initializes a new instance of the `PdfInput` class.15 * @param { PdfResource | string } resource The resource of type `PdfResource`. | The resource path in cloud resource manager.16 * @param {MergeOptions} mergeOptions The merge options for the pdf.17 */18 constructor(resource, mergeOptions = null) {19 super(resource);20 if (mergeOptions != null)21 this.mergeOptions = mergeOptions;22 this._Type = inputType.pdf;23 }24 toJSON() {25 return {26 mergeOptions: this.mergeOptions,27 startPage: this.startPage,28 pageCount: this.pageCount,29 type: this._Type,30 resourceName: this.resourceName,31 templateId: this._templateId,32 id: this.id33 };34 }...
Using AI Code Generation
1const { mergeOptions } = require('@playwright/test/lib/utils/mergeOptions');2const { Playwright } = require('@playwright/test/lib/server/playwright');3const { PlaywrightLauncher } = require('@playwright/test/lib/server/playwrightLauncher');4const { PlaywrightServer } = require('@playwright/test/lib/server/playwrightServer');5const { PlaywrightWorker } = require('@playwright/test/lib/server/playwrightWorker');6const playwright = new Playwright();7const server = new PlaywrightServer(playwright);8const launcher = new PlaywrightLauncher(server, playwright);9const worker = new PlaywrightWorker(launcher, playwright);10const options = {11 launchOptions: {12 },13 contextOptions: {14 },15 use: {16 },17};18const mergedOptions = mergeOptions(options, worker);19console.log(mergedOptions);20module.exports = {21 use: {22 },23 {24 use: {25 },26 },27 {28 use: {29 },30 },31 {32 use: {33 },34 },35};36const { test, expect } = require('@playwright/test');37test('basic test', async ({ page }) => {38 const title = page.locator('.navbar__inner .navbar__title');39 await expect(title).toHaveText('Playwright');40});
Using AI Code Generation
1const { mergeOptions } = require('playwright/lib/utils/utils');2const options = mergeOptions({ foo: 'bar' }, { foo: 'baz' });3console.log(options);4const { mergeOptions } = require('playwright/lib/utils/utils');5const options = mergeOptions({ foo: 'bar' }, { foo: 'baz' });6console.log(options);7const { mergeOptions } = require('playwright/lib/utils/utils');8const options = mergeOptions({ foo: 'bar' }, { foo: 'baz' });9console.log(options);10const { mergeOptions } = require('playwright/lib/utils/utils');11const options = mergeOptions({ foo: 'bar' }, { foo: 'baz' });12console.log(options);13const { mergeOptions } = require('playwright/lib/utils/utils');14const options = mergeOptions({ foo: 'bar' }, { foo: 'baz' });15console.log(options);16const { mergeOptions } = require('playwright/lib/utils/utils');17const options = mergeOptions({ foo: 'bar' }, { foo: 'baz' });18console.log(options);19const { mergeOptions } = require('playwright/lib/utils/utils');20const options = mergeOptions({ foo: 'bar' }, { foo: 'baz' });21console.log(options);22const { mergeOptions } = require('playwright/lib/utils/utils');23const options = mergeOptions({ foo: 'bar' }, { foo: 'baz' });24console.log(options);25const { merge
Using AI Code Generation
1const { mergeOptions } = require('@playwright/test/lib/utils/mergeOptions');2const options = mergeOptions({3}, {4});5console.log(options);6{7}8mergeOptions(options: any, overrides: any): any
Using AI Code Generation
1const { mergeOptions } = require('@playwright/test/lib/utils/options');2const browserType = playwright['chromium'];3const browserOptions = mergeOptions(browserType.defaultArgs(), {4});5const context = await browserType.launchPersistentContext('/tmp/user-data-dir', browserOptions);6const context = await browserType.launchPersistentContext('/tmp/user-data-dir', {7});8const browser = await browserType.launch({9});10const context = await browserType.launchPersistentContext('/tmp/user-data-dir', {11});12const browser = await browserType.launch({13});14const context = await browserType.launchPersistentContext('/tmp/user-data-dir', {15});16const browser = await browserType.launch({17});18const context = await browserType.launchPersistentContext('/tmp/user-data-dir', {19});20const browser = await browserType.launch({21});22const context = await browserType.launchPersistentContext('/tmp/user-data-dir', {
Using AI Code Generation
1const { mergeOptions } = require('@playwright/test/lib/utils/utils').utils;2const { chromium } = require('@playwright/test');3(async () => {4 const browser = await chromium.launch();5 const page = await browser.newPage();6 const context = await browser.newContext();7 const newContext = await browser.newContext(mergeOptions(context.options, { viewport: null }));8 const newPage = await newContext.newPage(mergeOptions(page.options, { viewport: null }));9 await browser.close();10})();
Using AI Code Generation
1const { mergeOptions } = require('playwright/lib/utils/utils');2const options = mergeOptions({3}, {4});5console.log(options);6{ foo: 'baz' }
Using AI Code Generation
1const { Playwright } = require('playwright-core');2const { mergeOptions } = Playwright.Internal;3const defaultOptions = {4};5const options = {6};7const mergedOptions = mergeOptions(defaultOptions, options);8console.log(mergedOptions);9const { Playwright } = require('playwright-core');10const { mergeOptions } = Playwright.Internal;11const defaultOptions = {12};13const options = {14};15const mergedOptions = mergeOptions(defaultOptions, options);16console.log(mergedOptions);17const { Playwright } = require('playwright-core');18const { mergeOptions } = Playwright.Internal;19const defaultOptions = {20};21const options = {22};23const mergedOptions = mergeOptions(defaultOptions, options);24console.log(mergedOptions);25const { Playwright } = require('playwright-core');26const { mergeOptions } = Playwright.Internal;27const defaultOptions = {28};29const options = {30};31const mergedOptions = mergeOptions(defaultOptions, options);32console.log(mergedOptions);33const { Playwright } = require('playwright-core');34const { mergeOptions } = Playwright.Internal;35const defaultOptions = {36};37const options = {
LambdaTest’s Playwright tutorial will give you a broader idea about the Playwright automation framework, its unique features, and use cases with examples to exceed your understanding of Playwright testing. This tutorial will give A to Z guidance, from installing the Playwright framework to some best practices and advanced concepts.
Get 100 minutes of automation test minutes FREE!!