Best JavaScript code snippet using playwright-internal
generate-toc.js
Source:generate-toc.js
1const mock = require('mock-fs');2const { defaultConfig } = require('../../../../lib/config');3const { db } = require('../../../../lib/db');4const fs = require('fs-extra');5const GenerateToc = require('../../../../lib/tasks/generate-toc');6const { name } = require('@jsdoc/core');7const path = require('path');8const Template = require('../../../../lib/template');9const ARGUMENT_ERROR = 'ArgumentError';10const OUTPUT_DIR = 'out';11const TYPE_ERROR = 'TypeError';12describe('lib/tasks/generate-toc', () => {13 let instance;14 beforeEach(() => {15 instance = new GenerateToc({16 name: 'generateToc',17 url: 'toc.js'18 });19 });20 it('is a constructor', () => {21 function factory() {22 return new GenerateToc({ name: 'generateToc' });23 }24 expect(factory).not.toThrow();25 });26 it('has an undefined `url` property by default', () => {27 expect(new GenerateToc({}).url).toBeUndefined();28 });29 it('accepts a `url` property', () => {30 instance = new GenerateToc({31 name: 'customUrl',32 url: 'foo'33 });34 expect(instance.url).toBe('foo');35 });36 it('accepts new values for `url`', () => {37 instance.url = 'foo';38 expect(instance.url).toBe('foo');39 });40 describe('run', () => {41 let context;42 const globals = db({43 values: [44 {45 kind: 'constant',46 longname: 'globalConstant',47 name: 'globalConstant',48 scope: 'global'49 },50 {51 kind: 'function',52 longname: 'globalFunction',53 name: 'globalFunction',54 scope: 'global'55 },56 {57 kind: 'member',58 longname: 'globalMember',59 name: 'globalMember',60 scope: 'global'61 },62 {63 kind: 'typedef',64 longname: 'globalTypedef',65 name: 'globalTypedef',66 scope: 'global'67 }68 ]69 });70 const nonGlobals = [71 {72 kind: 'namespace',73 longname: 'foo',74 name: 'foo'75 },76 {77 kind: 'class',78 longname: 'foo.Bar',79 name: 'Bar'80 }81 ];82 const navTree = name.longnamesToTree(nonGlobals.map(d => d.longname));83 const template = new Template(defaultConfig);84 beforeEach(() => {85 context = {86 config: {87 opts: {}88 },89 destination: OUTPUT_DIR,90 globals,91 navTree,92 template,93 templateConfig: defaultConfig94 };95 context.linkManager = context.template.linkManager;96 mock(helpers.baseViews);97 });98 afterEach(() => {99 mock.restore();100 });101 it('fails if the `globals` are missing', async () => {102 let error;103 context.globals = null;104 try {105 await instance.run(context);106 } catch (e) {107 error = e;108 }109 expect(error).toBeErrorOfType(TYPE_ERROR);110 });111 it('fails if the `navTree` is missing', async () => {112 let error;113 context.navTree = null;114 try {115 await instance.run(context);116 } catch (e) {117 error = e;118 }119 expect(error).toBeErrorOfType(TYPE_ERROR);120 });121 it('fails if the `template` is missing', async () => {122 let error;123 context.template = null;124 try {125 await instance.run(context);126 } catch (e) {127 error = e;128 }129 expect(error).toBeErrorOfType(TYPE_ERROR);130 });131 it('fails if the `url` is missing', async () => {132 let error;133 instance.url = null;134 try {135 await instance.run(context);136 } catch (e) {137 error = e;138 }139 expect(error).toBeErrorOfType(ARGUMENT_ERROR);140 });141 it('saves the output file to the specified location', async () => {142 const url = instance.url;143 const outputPath = path.join(OUTPUT_DIR, url);144 await instance.run(context);145 expect(fs.existsSync(outputPath)).toBeTrue();146 });147 it('saves the output file to a subdirectory if asked', async () => {148 const url = instance.url = path.join('scripts', 'foo.js');149 const outputPath = path.join(OUTPUT_DIR, url);150 await instance.run(context);151 expect(fs.existsSync(outputPath)).toBeTrue();152 });153 it('adds everything in the `navTree` to the TOC', async () => {154 let file;155 const names = nonGlobals.map(d => d.name);156 const url = instance.url;157 const outputPath = path.join(OUTPUT_DIR, url);158 await instance.run(context);159 file = fs.readFileSync(outputPath, 'utf8');160 for (const docletName of names) {161 expect(file).toContain(docletName);162 }163 });164 it('does not include an entry for globals if there are no globals', async () => {165 let file;166 const url = instance.url;167 const outputPath = path.join(OUTPUT_DIR, url);168 context.globals = db({ values: [] });169 await instance.run(context);170 file = fs.readFileSync(outputPath, 'utf8');171 expect(file).not.toContain('global');172 });173 it('includes an entry for globals when there are globals', async () => {174 let file;175 const url = instance.url;176 const outputPath = path.join(OUTPUT_DIR, url);177 await instance.run(context);178 file = fs.readFileSync(outputPath, 'utf8');179 expect(file).toContain('global');180 });181 });...
generateMarkdown.js
Source:generateMarkdown.js
1// Variables for license links2const apacheLicense = '(https://choosealicense.com/licenses/apache-2.0/)';3const gnuLicense = '(https://choosealicense.com/licenses/gpl-3.0/)';4const iscLicense = '(https://choosealicense.com/licenses/isc/)';5const mitLicense = '(https://choosealicense.com/licenses/mit/)';6// Generate Markdown7function generateMarkdown(userResponse) {8 let generateToC = `## Table of Contents`;9 if (userResponse.confirmInstall) {10 generateToC += `11 * [Installation](#installation)`;12 }13 if (userResponse.confirmUsage) {14 generateToC += `15 * [Usage](#usage)`;16 }17 if (userResponse.confirmCredits) {18 generateToC += `19 * [Credits](#credits)`;20 }21 if (userResponse.confirmLicense) {22 generateToC += `23 * [License](#license)`;24 }25 if (userResponse.confirmFeatures) {26 generateToC += `27 * [Features](#features)`;28 }29 if (userResponse.confirmContributing) {30 generateToC += `31 * [Contributing](#contributing)`;32 }33 if (userResponse.confirmTests) {34 generateToC += `35 * [Tests](#tests)`;36 }37 let markdown = `38 # ${userResponse.title}39 `;40 if (userResponse.confirmLicense) {41 if (userResponse.license == 'Apache_License_2.0') {42 markdown += `43 ![badge](https://img.shields.io/badge/license-${userResponse.license}-green)44`;45 } else if (userResponse.license == 'GNU_GPLv3') {46 markdown += `47 48 ![badge](https://img.shields.io/badge/license-${userResponse.license}-yellowgreen)49`;50 } else if (userResponse.license == 'ISC') {51 markdown += `52 53 ![badge](https://img.shields.io/badge/license-${userResponse.license}-yellow)54`;55 } else if (userResponse.license == 'MIT') {56 markdown += `57 58 ![badge](https://img.shields.io/badge/license-${userResponse.license}-orange)59`;60 }61 }62 markdown += `63## Description 64 * ${userResponse.description}65`;66 if (userResponse.confirmLink) {67 markdown += `68## Link to Active Product69 * http://${userResponse.github}.github.io/${userResponse.projectPath}/70`;71 }72 if (userResponse.confirmToC) {73 markdown += generateToC;74 }75 if (userResponse.confirmInstall) {76 markdown += `77## Installation78 * ${userResponse.installation}79`;80 }81 if (userResponse.confirmUsage) {82 markdown += `83## Usage84 * ${userResponse.usage}85`;86 }87 if (userResponse.confirmCredits) {88 markdown += `89## Credits90 * ${userResponse.credits}91`;92 }93 if (userResponse.confirmLicense) {94 if (userResponse.license == 'Apache_License_2.0') {95 markdown += `96 97## License98 ![badge](https://img.shields.io/badge/license-${userResponse.license}-green)99 * This project is covered under [${userResponse.license}]${apacheLicense}100`;101 } else if (userResponse.license == 'GNU_GPLv3') {102 markdown += `103 104## License105 ![badge](https://img.shields.io/badge/license-${userResponse.license}-yellowgreen)106 * This project is covered under [${userResponse.license}]${gnuLicense}107`;108 } else if (userResponse.license == 'ISC') {109 markdown += `110 111## License112 ![badge](https://img.shields.io/badge/license-${userResponse.license}-yellow)113 * This project is covered under [${userResponse.license}]${iscLicense}114`;115 } else if (userResponse.license == 'MIT') {116 markdown += `117 118## License119 ![badge](https://img.shields.io/badge/license-${userResponse.license}-orange)120 * This project is covered under [${userResponse.license}]${mitLicense}121`;122 }123 }124 if (userResponse.confirmFeatures) {125 markdown += `126## Features127 * ${userResponse.features}128`;129 }130 if (userResponse.confirmContributing) {131 markdown += `132## Contributing133 * ${userResponse.contributing}134`;135 }136 if (userResponse.confirmTests) {137 markdown += `138## Tests139 * ${userResponse.tests}140`;141 }142 markdown += `143## Questions?144 * Contact me at: ${userResponse.email}145 * Github: https://github.com/${userResponse.github}/146`;147 return markdown;148}149// Exports markdown...
phpunit.js
Source:phpunit.js
1const types = require("../types");2const beforeGenerateToc = function ({3 $,4 relativePath,5 addDashAnchor,6 docset,7}) {8 $(".wy-nav-side").remove();9 $(".rst-versions").remove();10 $(".wy-nav-content-wrap").removeClass("wy-nav-content-wrap");11 $(".wy-nav-content").css("max-width", "100%");12};13const generateToc = function ({14 $,15 relativePath,16 addDashAnchor,17 insertToDb,18 docset,19}) {20 if (21 $("head title").text().trim().indexOf("æªæ¾å°") !== -1 ||22 relativePath.endsWith("search.html") ||23 relativePath.endsWith("-2.html") ||24 relativePath.endsWith("genindex.html") ||25 relativePath.endsWith("copyright.html")26 ) {27 return;28 }29 let title = $("h1").text().trim();30 if (title.indexOf(".") !== -1) {31 title = title.split(". ")[1];32 }33 if (relativePath.endsWith("assertions.html")) {34 title = "æè¨æ¹æ³";35 } else if (relativePath.endsWith("annotations.html")) {36 title = "注解";37 }38 insertToDb({39 name: title,40 type: types.Guide,41 path: relativePath,42 });43};44const beforeFilter = function ({ $, relativePath, addDashAnchor, docset }) {};45const filter = function ({ $, relativePath, addDashAnchor, docset }) {};46const afterFilter = function ({ $, relativePath, addDashAnchor, docset }) {47 $("body script").each((index, item) => {48 $(item).remove();49 });50};51module.exports = {52 name: "phpunit",53 displayName: "PHPUnit",54 platformFamily: "PHPUnit",55 entry: "phpunit.readthedocs.io/zh_CN/latest/index.html",56 domain: "phpunit.readthedocs.io/zh_CN/latest",57 include: [],58 exclude: [],59 indexGenerator: [60 {61 file: "assertions.html",62 generateToc: function ({63 $,64 relativePath,65 addDashAnchor,66 insertToDb,67 docset,68 }) {69 $(".section").each((index, element) => {70 if (index === 0) {71 return;72 }73 insertToDb({74 name: $("h1", element).text().trim().split(". ")[1],75 type: types.Method,76 path: `${relativePath}#${encodeURIComponent(element.attribs.id)}`,77 });78 });79 },80 },81 {82 file: "annotations.html",83 generateToc: function ({84 $,85 relativePath,86 addDashAnchor,87 insertToDb,88 docset,89 }) {90 $(".section").each((index, element) => {91 if (index === 0) {92 return;93 }94 insertToDb({95 name: $("h1", element).text().trim().split(". ")[1],96 type: types.Annotation,97 path: `${relativePath}#${encodeURIComponent(element.attribs.id)}`,98 });99 });100 },101 },102 ],103 generator: [104 {105 pattern: /.*/g,106 beforeGenerateToc,107 generateToc,108 filter,109 beforeFilter,110 afterFilter,111 },112 ],...
markdown.js
Source:markdown.js
1'use strict';2/**3 * Module dependencies.4 */5var Base = require('./base');6var utils = require('../utils');7/**8 * Constants9 */10var SUITE_PREFIX = '$';11/**12 * Expose `Markdown`.13 */14exports = module.exports = Markdown;15/**16 * Initialize a new `Markdown` reporter.17 *18 * @api public19 * @param {Runner} runner20 */21function Markdown (runner) {22 Base.call(this, runner);23 var level = 0;24 var buf = '';25 function title (str) {26 return Array(level).join('#') + ' ' + str;27 }28 function mapTOC (suite, obj) {29 var ret = obj;30 var key = SUITE_PREFIX + suite.title;31 obj = obj[key] = obj[key] || { suite: suite };32 suite.suites.forEach(function (suite) {33 mapTOC(suite, obj);34 });35 return ret;36 }37 function stringifyTOC (obj, level) {38 ++level;39 var buf = '';40 var link;41 for (var key in obj) {42 if (key === 'suite') {43 continue;44 }45 if (key !== SUITE_PREFIX) {46 link = ' - [' + key.substring(1) + ']';47 link += '(#' + utils.slug(obj[key].suite.fullTitle()) + ')\n';48 buf += Array(level).join(' ') + link;49 }50 buf += stringifyTOC(obj[key], level);51 }52 return buf;53 }54 function generateTOC (suite) {55 var obj = mapTOC(suite, {});56 return stringifyTOC(obj, 0);57 }58 generateTOC(runner.suite);59 runner.on('suite', function (suite) {60 ++level;61 var slug = utils.slug(suite.fullTitle());62 buf += '<a name="' + slug + '"></a>' + '\n';63 buf += title(suite.title) + '\n';64 });65 runner.on('suite end', function () {66 --level;67 });68 runner.on('pass', function (test) {69 var code = utils.clean(test.body);70 buf += test.title + '.\n';71 buf += '\n```js\n';72 buf += code + '\n';73 buf += '```\n\n';74 });75 runner.on('end', function () {76 process.stdout.write('# TOC\n');77 process.stdout.write(generateTOC(runner.suite));78 process.stdout.write(buf);79 });...
frontmatter.js
Source:frontmatter.js
1goog.provide('gpub.opts.Frontmatter');2goog.provide('gpub.opts.FrontmatterDef');3/**4 * @typedef {{5 * foreword: (string|undefined),6 * preface: (string|undefined),7 * acknowledgements: (string|undefined),8 * introduction: (string|undefined),9 * generateToc: (boolean|undefined),10 * }}11 */12gpub.opts.FrontmatterDef;13/**14 * @param {!(gpub.opts.Frontmatter|gpub.opts.FrontmatterDef)=} options15 *16 * @constructor @struct @final17 */18gpub.opts.Frontmatter = function(options) {19 var o = options || {};20 // Note! If this is changed, then src/book/frontmatter.js must also be changed.21 /** @const {string|undefined} */22 this.foreword = o.foreword || undefined; // Author or unrelated person23 /** @const {string|undefined} */24 this.preface = o.foreword || undefined; // Author25 /** @const {string|undefined} */26 this.acknowledgements = o.acknowledgements || undefined;27 /** @const {string|undefined} */28 this.introduction = o.introduction || undefined;29 /**30 * Generate the Table of Contents or just 'Contents'. Defaults to true.31 * @type {boolean}32 */33 this.generateToc = o.generateToc !== undefined ? !!o.generateToc : true;...
Article.js
Source:Article.js
1import estimateMinuteRead from '@/helpers/estimateMinuteRead';2import generateTOC from '@/helpers/generateTOC';3import Content from '@/models/Content';4import Tag from '@/models/Tag';5export default class Article extends Content {6 get minuteRead() {7 return estimateMinuteRead(this.attributes?.body);8 }9 get headings() {10 return generateTOC(this.attributes?.bodyMarkup);11 }12 get modelName() {13 return 'article';14 }15 get listName() {16 return 'allArticles';17 }18 get attributeMapping() {19 return [20 'id',21 'title',22 'excerpt',23 'body',24 'featured',25 'slug',26 '_publishedAt',27 ];28 }29 get relations() {30 return {31 tags: new Tag(),32 };33 }...
processBook.js
Source:processBook.js
1const fs = require('fs');2const processSection = require('./processSection');3const writeJSON = require('./writeJSON');4const generateTOC = require('./generateTOC');5const { bookPath } = require('./bookInfo');6/**7 * This is the main function.8 * Each section (è) is one html, which will be converted to one json */9function processBook() {10 let filenames = fs.readdirSync(bookPath);11 let sections = filenames.map(processSection);12 generateTOC(sections);13 sections.forEach(writeJSON);14}...
Using AI Code Generation
1const { chromium } = require('playwright');2(async () => {3 const browser = await chromium.launch();4 const page = await browser.newPage();5 const toc = await page._generateToc();6 console.log(toc);7 await browser.close();8})();9 { text: 'Playwright', level: 1, children: [] },10 { text: 'Introduction', level: 2, children: [] },11 { text: 'Get Started', level: 2, children: [] },12 { text: 'API', level: 2, children: [] },13 { text: 'Guides', level: 2, children: [] },14 { text: 'Examples', level: 2, children: [] },15 { text: 'Contributing', level: 2, children: [] },16 { text: 'License', level: 2, children: [] },17 { text: 'Playwright', level: 1, children: [] },18 { text: 'Introduction', level: 2, children: [] },19 { text: 'Get Started', level: 2, children: [] },20 { text: 'API', level: 2, children: [] },21 { text: 'Guides', level: 2, children: [] },22 { text: 'Examples', level: 2, children: [] },23 { text: 'Contributing', level: 2, children: [] },24 { text: 'License', level: 2, children: [] }25const toc = await page._generateToc('text="API"');26console.log(toc);27[ { text: 'API', level: 2, children: [] } ]28const toc = await page._generateToc('text="Table of Contents
Using AI Code Generation
1const { chromium } = require('playwright');2const { generateToc } = require('playwright/lib/utils/toc');3(async () => {4 const browser = await chromium.launch();5 const context = await browser.newContext();6 const page = await context.newPage();7 const toc = await generateToc(page);8 console.log(toc);9 await browser.close();10})();11[ { level: 1, title: 'Playwright', url: '#' },12 { level: 2, title: 'Documentation', url: '#' },13 { level: 2, title: 'API', url: '#' },14 { level: 2, title: 'Community', url: '#' },15 { level: 2, title: 'Contributing', url: '#' },16 { level: 2, title: 'Code of Conduct', url: '#' },17 { level: 2, title: 'License', url: '#' } ]18const { chromium } = require('playwright');19const { generateToc } = require('playwright/lib/utils/toc');20(async () => {21 const browser = await chromium.launch();22 const context = await browser.newContext();23 const page = await context.newPage();24 const toc = await generateToc(page);25 console.log(toc);26 await browser.close();27})();28[ { level: 1, title: 'Dummy', url: '#' },
Using AI Code Generation
1const { generateToc } = require('@playwright/test');2const fs = require('fs');3(async () => {4 const toc = await generateToc('test.spec.js');5 fs.writeFileSync('toc.json', JSON.stringify(toc, null, 2));6})();7const { test } = require('@playwright/test');8const toc = require('./toc.json');9test.describe('My Test Suite', () => {10 for (const [title, entry] of Object.entries(toc)) {11 test(title, entry.fn);12 }13});14const { generateToc } = require('@playwright/test');15const fs = require('fs');16const glob = require('glob');17(async () => {18 const files = glob.sync('test-*.spec.js');19 const toc = {};20 for (const file of files) {21 Object.assign(toc, await generateToc(file));22 }23 fs.writeFileSync('toc.json', JSON.stringify(toc, null, 2));24})();25const { test } = require('@playwright/test');26const toc = require('./toc.json');27test.describe('My Test Suite', () => {28 for (const [title, entry] of Object.entries(toc)) {29 test(title, entry.fn);30 }31});32const { generateToc } = require('@playwright/test');33const fs = require('fs');34const glob = require('glob');35(async () => {36 const files = glob.sync('test-*.spec.js');37 const toc = {};38 for (const file of files) {39 Object.assign(toc, await generateToc(file, (entry) => entry.title));40 }41 fs.writeFileSync('toc.json', JSON.stringify(toc, null, 2));42})();43const { test } = require('@playwright/test');44const toc = require('./toc.json');45test.describe('My Test Suite', () => {
Using AI Code Generation
1const { generateToc } = require('playwright/lib/server/supplements/recorder/toc');2console.log(toc);3 {4 {5 },6 {7 },8 {9 },10 {11 },12 {13 }14 },15 {16 {17 },
Using AI Code Generation
1const playwright = require('playwright');2(async () => {3 const browser = await playwright.chromium.launch({ headless: false });4 const context = await browser.newContext();5 const page = await context.newPage();6 console.log(toc);7 await browser.close();8})();
Using AI Code Generation
1const { generateToc } = require('@playwright/test');2(async () => {3 const toc = await generateToc();4 console.log(toc);5})();6 {7 }8const { generateToc } = require('@playwright/test');9(async () => {10 const toc = await generateToc({11 });12 console.log(toc);13})();14 {15 }16const { generateToc } = require('@playwright/test');17(async () => {18 const toc = await generateToc({19 });20 console.log(toc);21})();22 {23 }24const { generateToc } = require('@playwright/test');
Using AI Code Generation
1const { generateToc } = require('playwright-core/lib/server/inspector');2const toc = generateToc({3 {4 {5 {6 },7 {8 },9 },10 {11 {12 },13 {14 },15 },16 },17 {18 {19 {
Using AI Code Generation
1const { generateToc } = require('playwright/lib/utils/generateToc.js');2const toc = generateToc('path/to/file.md');3console.log(toc);4const { generateToc } = require('playwright/lib/utils/generateToc.js');5const toc = generateToc('path/to/file.md');6console.log(toc);7const { toc } = require('markdown-toc');
Using AI Code Generation
1const { generateToc } = require('playwright/lib/server/domSnapshot');2const toc = generateToc(document, { root: document.body, useInnerText: true });3console.log(JSON.stringify(toc, null, 2));4{5 "attributes": {},6 {7 "attributes": {},8 {9 "attributes": {},10 }11 },12 {13 "attributes": {},14 {15 "attributes": {},16 }17 },18 {19 "attributes": {},20 {21 "attributes": {},22 }23 },24 {25 "attributes": {},26 {27 "attributes": {},28 }29 },30 {31 "attributes": {},32 {33 "attributes": {},34 }35 },36 {37 "attributes": {},38 {39 "attributes": {},40 }41 }42}
Using AI Code Generation
1const { generateToc } = require('playwright-core/lib/utils/markdown');2const fs = require('fs');3const toc = generateToc('README.md');4fs.writeFileSync('toc', toc);5"scripts": {6}7- [Section 1](#section-1)8 - [Section 1.1](#section-11)9 - [Section 1.2](#section-12)10- [Section 2](#section-2)11 - [Section 2.1](#section-21)12 - [Section 2.2](#section-22)13- [Section 3](#section-3)14 - [Section 3.1](#section-31)15 - [Section 3.2](#section-32)
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!!