Best JavaScript code snippet using storybook-root
extension_loader.js
Source:extension_loader.js
1// Copyright 2014 The Chromium Authors. All rights reserved.2// Use of this source code is governed by a BSD-style license that can be3// found in the LICENSE file.4cr.define('extensions', function() {5 'use strict';6 /**7 * Construct an ExtensionLoadError around the given |div|.8 * @param {HTMLDivElement} div The HTML div for the extension load error.9 * @constructor10 * @extends {HTMLDivElement}11 */12 function ExtensionLoadError(div) {13 div.__proto__ = ExtensionLoadError.prototype;14 div.init();15 return div;16 }17 /**18 * Construct a Failure.19 * @param {string} filePath The path to the unpacked extension.20 * @param {string} error The reason the extension failed to load.21 * @param {ExtensionHighlight} manifest Three 'highlight' strings in22 * |manifest| represent three portions of the file's content to display -23 * the portion which is most relevant and should be emphasized24 * (highlight), and the parts both before and after this portion. These25 * may be empty.26 * @param {HTMLLIElement} listElement The HTML element used for displaying the27 * failure path for the additional failures UI.28 * @constructor29 * @extends {HTMLDivElement}30 */31 function Failure(filePath, error, manifest, listElement) {32 this.path = filePath;33 this.error = error;34 this.manifest = manifest;35 this.listElement = listElement;36 }37 ExtensionLoadError.prototype = {38 __proto__: HTMLDivElement.prototype,39 /**40 * Initialize the ExtensionLoadError div.41 */42 init: function() {43 /**44 * The element which displays the path of the extension.45 * @type {HTMLElement}46 * @private47 */48 this.path_ = /** @type {HTMLElement} */(49 this.querySelector('#extension-load-error-path'));50 /**51 * The element which displays the reason the extension failed to load.52 * @type {HTMLElement}53 * @private54 */55 this.reason_ = /** @type {HTMLElement} */(56 this.querySelector('#extension-load-error-reason'));57 /**58 * The element which displays the manifest code.59 * @type {extensions.ExtensionCode}60 * @private61 */62 this.manifest_ = new extensions.ExtensionCode(63 this.querySelector('#extension-load-error-manifest'));64 /**65 * The element which displays information about additional errors.66 * @type {HTMLElement}67 * @private68 */69 this.additional_ = /** @type {HTMLUListElement} */(70 this.querySelector('#extension-load-error-additional'));71 this.additional_.list = this.additional_.getElementsByTagName('ul')[0];72 /**73 * An array of Failures for keeping track of multiple active failures.74 * @type {Array<Failure>}75 * @private76 */77 this.failures_ = [];78 this.querySelector('#extension-load-error-retry-button').addEventListener(79 'click', function(e) {80 chrome.send('extensionLoaderRetry');81 this.remove_();82 }.bind(this));83 this.querySelector('#extension-load-error-give-up-button').84 addEventListener('click', function(e) {85 chrome.send('extensionLoaderIgnoreFailure');86 this.remove_();87 }.bind(this));88 chrome.send('extensionLoaderDisplayFailures');89 },90 /**91 * Add a failure to failures_ array. If there is already a displayed92 * failure, display the additional failures element.93 * @param {Array<Object>} failures Array of failures containing paths,94 * errors, and manifests.95 * @private96 */97 add_: function(failures) {98 // If a failure is already being displayed, unhide the last item.99 if (this.failures_.length > 0)100 this.failures_[this.failures_.length - 1].listElement.hidden = false;101 failures.forEach(function(failure) {102 var listItem = /** @type {HTMLLIElement} */(103 document.createElement('li'));104 listItem.textContent = failure.path;105 this.additional_.list.appendChild(listItem);106 this.failures_.push(new Failure(failure.path,107 failure.error,108 failure.manifest,109 listItem));110 }.bind(this));111 // Hide the last item because the UI is displaying its information.112 this.failures_[this.failures_.length - 1].listElement.hidden = true;113 this.show_();114 },115 /**116 * Remove a failure from |failures_| array. If this was the last failure,117 * hide the error UI. If this was the last additional failure, hide118 * the additional failures UI.119 * @private120 */121 remove_: function() {122 this.additional_.list.removeChild(123 this.failures_[this.failures_.length - 1].listElement);124 this.failures_.pop();125 if (this.failures_.length > 0) {126 this.failures_[this.failures_.length - 1].listElement.hidden = true;127 this.show_();128 } else {129 this.hidden = true;130 }131 },132 /**133 * Display the load error to the user. The last failure gets its manifest134 * and error displayed, while additional failures have their path names135 * displayed in the additional failures element.136 * @private137 */138 show_: function() {139 assert(this.failures_.length >= 1);140 var failure = this.failures_[this.failures_.length - 1];141 this.path_.textContent = failure.path;142 this.reason_.textContent = failure.error;143 failure.manifest.message = failure.error;144 this.manifest_.populate(145 failure.manifest,146 loadTimeData.getString('extensionLoadCouldNotLoadManifest'));147 this.hidden = false;148 this.manifest_.scrollToError();149 this.additional_.hidden = this.failures_.length == 1;150 }151 };152 /**153 * The ExtensionLoader is the class in charge of loading unpacked extensions.154 * @constructor155 */156 function ExtensionLoader() {157 /**158 * The ExtensionLoadError to show any errors from loading an unpacked159 * extension.160 * @type {ExtensionLoadError}161 * @private162 */163 this.loadError_ = new ExtensionLoadError(164 /** @type {HTMLDivElement} */($('extension-load-error')));165 }166 cr.addSingletonGetter(ExtensionLoader);167 ExtensionLoader.prototype = {168 /**169 * Whether or not we are currently loading an unpacked extension.170 * @private {boolean}171 */172 isLoading_: false,173 /**174 * Begin the sequence of loading an unpacked extension. If an error is175 * encountered, this object will get notified via notifyFailed().176 */177 loadUnpacked: function() {178 if (this.isLoading_) // Only one running load at a time.179 return;180 this.isLoading_ = true;181 chrome.developerPrivate.loadUnpacked({failQuietly: true}, function() {182 // Check lastError to avoid the log, but don't do anything with it -183 // error-handling is done on the C++ side.184 var lastError = chrome.runtime.lastError;185 this.isLoading_ = false;186 }.bind(this));187 },188 /**189 * Notify the ExtensionLoader that loading an unpacked extension failed.190 * Add the failure to failures_ and show the ExtensionLoadError.191 * @param {Array<Object>} failures Array of failures containing paths,192 * errors, and manifests.193 */194 notifyFailed: function(failures) {195 this.loadError_.add_(failures);196 },197 };198 /**199 * A static forwarding function for ExtensionLoader.notifyFailed.200 * @param {Array<Object>} failures Array of failures containing paths,201 * errors, and manifests.202 * @see ExtensionLoader.notifyFailed203 */204 ExtensionLoader.notifyLoadFailed = function(failures) {205 ExtensionLoader.getInstance().notifyFailed(failures);206 };207 return {208 ExtensionLoader: ExtensionLoader209 };...
expectedfailures.js
Source:expectedfailures.js
1goog.provide('goog.testing.ExpectedFailures'); 2goog.require('goog.debug.DivConsole'); 3goog.require('goog.debug.Logger'); 4goog.require('goog.dom'); 5goog.require('goog.dom.TagName'); 6goog.require('goog.events'); 7goog.require('goog.events.EventType'); 8goog.require('goog.style'); 9goog.require('goog.testing.JsUnitException'); 10goog.require('goog.testing.TestCase'); 11goog.require('goog.testing.asserts'); 12goog.testing.ExpectedFailures = function() { 13 goog.testing.ExpectedFailures.setUpConsole_(); 14 this.reset_(); 15}; 16goog.testing.ExpectedFailures.console_ = null; 17goog.testing.ExpectedFailures.prototype.logger_ = goog.debug.Logger.getLogger('goog.testing.ExpectedFailures'); 18goog.testing.ExpectedFailures.prototype.expectingFailure_; 19goog.testing.ExpectedFailures.prototype.failureMessage_; 20goog.testing.ExpectedFailures.prototype.suppressedFailures_; 21goog.testing.ExpectedFailures.setUpConsole_ = function() { 22 if(! goog.testing.ExpectedFailures.console_) { 23 var xButton = goog.dom.createDom(goog.dom.TagName.DIV, { 'style': 'position: absolute; border-left:1px solid #333;' + 'border-bottom:1px solid #333; right: 0; top: 0; width: 1em;' + 'height: 1em; cursor: pointer; background-color: #cde;' + 'text-align: center; color: black' }, 'X'); 24 var div = goog.dom.createDom(goog.dom.TagName.DIV, { 'style': 'position: absolute; border: 1px solid #333; right: 10px;' + 'top : 10px; width: 400px; display: none' }, xButton); 25 document.body.appendChild(div); 26 goog.events.listen(xButton, goog.events.EventType.CLICK, function() { 27 goog.style.showElement(div, false); 28 }); 29 goog.testing.ExpectedFailures.console_ = new goog.debug.DivConsole(div); 30 goog.testing.ExpectedFailures.prototype.logger_.addHandler(goog.bind(goog.style.showElement, null, div, true)); 31 goog.testing.ExpectedFailures.prototype.logger_.addHandler(goog.bind(goog.testing.ExpectedFailures.console_.addLogRecord, goog.testing.ExpectedFailures.console_)); 32 } 33}; 34goog.testing.ExpectedFailures.prototype.expectFailureFor = function(condition, opt_message) { 35 this.expectingFailure_ = this.expectingFailure_ || condition; 36 if(condition) { 37 this.failureMessage_ = this.failureMessage_ || opt_message || ''; 38 } 39}; 40goog.testing.ExpectedFailures.prototype.isExceptionExpected = function(ex) { 41 return this.expectingFailure_ && ex instanceof goog.testing.JsUnitException; 42}; 43goog.testing.ExpectedFailures.prototype.handleException = function(ex) { 44 if(this.isExceptionExpected(ex)) { 45 this.logger_.info('Suppressing test failure in ' + goog.testing.TestCase.currentTestName + ':' +(this.failureMessage_ ? '\n(' + this.failureMessage_ + ')': ''), ex); 46 this.suppressedFailures_.push(ex); 47 return; 48 } 49 throw ex; 50}; 51goog.testing.ExpectedFailures.prototype.run = function(func, opt_lenient) { 52 try { 53 func(); 54 } catch(ex) { 55 this.handleException(ex); 56 } 57 if(! opt_lenient && this.expectingFailure_ && ! this.suppressedFailures_.length) { 58 fail(this.getExpectationMessage_()); 59 } 60}; 61goog.testing.ExpectedFailures.prototype.getExpectationMessage_ = function() { 62 return 'Expected a test failure in \'' + goog.testing.TestCase.currentTestName + '\' but the test passed.'; 63}; 64goog.testing.ExpectedFailures.prototype.handleTearDown = function() { 65 if(this.expectingFailure_ && ! this.suppressedFailures_.length) { 66 this.logger_.warning(this.getExpectationMessage_()); 67 } 68 this.reset_(); 69}; 70goog.testing.ExpectedFailures.prototype.reset_ = function() { 71 this.expectingFailure_ = false; 72 this.failureMessage_ = ''; 73 this.suppressedFailures_ =[]; ...
list.ts
Source:list.ts
1import { EOL } from 'os';2import { IacFileInDirectory } from '../../../../types';3import { colors, contentPadding } from '../utils';4import { IaCTestFailure } from '../types';5export function formatIacTestFailures(testFailures: IaCTestFailure[]): string {6 const sectionComponents: string[] = [];7 const titleOutput = colors.title(`Test Failures`);8 sectionComponents.push(titleOutput);9 const testFailuresListOutput = formatFailuresList(testFailures);10 sectionComponents.push(testFailuresListOutput);11 return sectionComponents.join(EOL.repeat(2));12}13interface TestFailuresByFailureReason {14 [reason: string]: IacFileInDirectory[];15}16function groupTestFailuresByFailureReason(17 testFailures: IaCTestFailure[],18): TestFailuresByFailureReason {19 return testFailures.reduce((groupedFailures, failure) => {20 const reason = failure.failureReason;21 if (reason) {22 if (!groupedFailures[reason]) {23 groupedFailures[reason] = [];24 }25 groupedFailures[reason].push(failure);26 }27 return groupedFailures;28 }, {});29}30export function formatFailuresList(testFailures: IaCTestFailure[]): string {31 const testFailuresByReason = groupTestFailuresByFailureReason(testFailures);32 return Object.entries(testFailuresByReason)33 .map(([failureReason, testFailures]) =>34 formatFailure(failureReason, testFailures),35 )36 .join(EOL.repeat(2));37}38function formatFailure(39 failureReason: string,40 testFailures: IacFileInDirectory[],41): string {42 const pathPrefix = contentPadding + 'Path: ';43 const pathLeftPadding = ' '.repeat(pathPrefix.length);44 return (45 contentPadding +46 colors.failure.bold(failureReason) +47 EOL +48 pathPrefix +49 testFailures50 .map((testFailure) => testFailure.filePath)51 .join(EOL + pathLeftPadding)52 );...
Using AI Code Generation
1import { storiesOf } from '@storybook/react';2import { withInfo } from '@storybook/addon-info';3import { withReadme } from 'storybook-readme';4import { withA11y } from '@storybook/addon-a11y';5import { withKnobs } from '@storybook/addon-knobs';6import { withScreenshot } from 'storycap';7import { withTests } from '@storybook/addon-jest';8import { withViewport } from '@storybook/addon-viewport';9import { withConsole } from '@storybook/addon-console';10import { withPerformance } from 'storybook-addon-performance';11import { withFailures } from 'storybook-addon-failures';12import {
Using AI Code Generation
1import { failures } from 'storybook-root-decorator'2import { failures } from 'storybook-root-decorator'3import { failures } from 'storybook-root-decorator'4import { failures } from 'storybook-root-decorator'5import { failures } from 'storybook-root-decorator'6import { failures } from 'storybook-root-decorator'7import { failures } from 'storybook-root-decorator'8import { failures } from 'storybook-root-decorator'9import { failures } from 'storybook-root-decorator'10import { failures } from 'storybook-root-decorator'11import { failures } from 'storybook-root-decorator'12import { failures } from 'storybook-root-decorator'13import { failures } from 'storybook-root-decorator'14import { failures } from 'storybook-root-decorator'15import { failures } from 'storybook-root-decorator'16import { failures } from 'storybook-root-decorator'17import { failures } from 'storybook-root-decorator'18import { failures } from '
Using AI Code Generation
1import React from 'react';2import { storiesOf } from '@storybook/react';3import { failures } from 'storybook-root-decorator';4import { withFailures } from 'storybook-addon-failures';5const Test = () => {6 const [failed, setFailed] = React.useState(false);7 return (8 <button onClick={() => setFailed(true)}>Fail</button>9 {failed && <div>Failed</div>}10 );11};12storiesOf('test', module)13 .addDecorator(failures)14 .addDecorator(withFailures)15 .add('test', () => <Test />);16import { addDecorator } from '@storybook/react';17import { failures } from 'storybook-root-decorator';18addDecorator(failures);19import 'storybook-addon-failures/register';20import { withFailures } from 'storybook-addon-failures';21export const decorators = [withFailures];22import { addons } from '@storybook/addons';23import { withFailures } from 'storybook-addon-failures';24addons.setConfig({25 sidebar: {26 },27 panel: {28 },29});30module.exports = ({ config }) => {31 config.module.rules.push({32 test: /\.(js|jsx|ts|tsx)$/,33 loader: require.resolve('babel-loader'),34 options: {35 presets: [['react-app', { flow: false, typescript: true }]],36 },37 });38 config.resolve.extensions.push('.ts', '.tsx');39 return config;40};41{42 "compilerOptions": {
Using AI Code Generation
1import { failures } from 'storybook-root'2const test = () => {3 failures('This is a failure message')4}5import { addDecorator } from '@storybook/react'6import { withFailures } from 'storybook-root'7addDecorator(withFailures)8import { addDecorator } from '@storybook/react'9import { withFailures } from 'storybook-root'10addDecorator(withFailures)11import { addDecorator } from '@storybook/react'12import { withFailures } from 'storybook-root'13addDecorator(withFailures)14import { addDecorator } from '@storybook/react'15import { withFailures } from 'storybook-root'16addDecorator(withFailures)17import { addDecorator } from '@storybook/react'18import { withFailures } from 'storybook-root'19addDecorator(withFailures)20import { addDecorator } from '@storybook/react'21import { withFailures } from 'storybook-root'22addDecorator(withFailures)23import { addDecorator } from '@storybook/react'24import { withFailures } from 'storybook-root'25addDecorator(withFailures)26import { addDecorator } from '@storybook/react'27import { withFailures } from 'storybook-root'28addDecorator(withFailures)29import { addDecorator } from '@storybook/react'30import { withFailures } from 'storybook-root'31addDecorator(withFailures)32import { addDecorator } from '@storybook/react'33import { withFailures } from 'storybook-root'34addDecorator(withFailures)35import { add
Using AI Code Generation
1import { failures } from 'storybook-root'2export default function test() {3 failures('My message')4}5import test from '../test'6test()
Using AI Code Generation
1import { render } from '@testing-library/react';2import React from 'react';3import { StorybookRoot } from 'storybook-root';4import { failures } from 'storybook-root';5import { TestComponent } from './TestComponent';6failures(1);7render(8);9import React from 'react';10import { useStorybookRoot } from 'storybook-root';11export const TestComponent = () => {12 const { failures } = useStorybookRoot();13 return (14 {failures > 0 && <div data-testid="failures">Failures: {failures}</div>}15 );16};17import { render } from '@testing-library/react';18import React from 'react';19import { StorybookRoot } from 'storybook-root';20import { TestComponent } from './TestComponent';21describe('TestComponent', () => {22 it('should render failures count', () => {23 const { getByTestId } = render(24 );25 expect(getByTestId('failures')).toHaveTextContent('Failures: 1');26 });27});28import React from 'react';29import { StorybookRoot } from 'storybook-root';30import { TestComponent } from './TestComponent';31export default {32};33export const Default = () => (34);35import React from 'react';36import { StorybookRoot } from 'storybook-root';37 (Story) => (38];39import { addDecorator } from '@storybook/react';40import { withTests } from '@storybook/addon-jest';41import { withTests as withTestsRoot } from 'storybook-root';42import results from '../.jest-test-results.json';43import { decorators } from './preview';
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!