Best JavaScript code snippet using storybook-root
index.spec.ts
Source:index.spec.ts  
...27  configureResponse()28}29test('axiosTrials(axios, { retries, retryCondition })', t => {30  const client = axios.create();31  setupResponses(client, [32    () =>33      nock('http://example.com')34        .get('/test')35        .reply(200, 'It worked!')36  ])37  axiosTrials(client, { retries: 0 })38  client.get('http://example.com/test').then(result => {39    t.same(200, result.status)40    nock.cleanAll()41    nock.enableNetConnect()42    t.end()43  })44})45test('When the response is an error', t => {46  const client = axios.create();47  setupResponses(client, [48    () =>49      nock('http://example.com')50        .get('/test')51        .replyWithError(NETWORK_ERROR),52    () =>53      nock('http://example.com')54        .get('/test')55        .reply(200, 'It worked!')56  ])57  const retryCondition = (error: any) => {58    t.same(error, NETWORK_ERROR)59    nock.cleanAll()60    nock.enableNetConnect()61    t.end()62    return false;63  }64  axiosTrials(client, { retries: 1, retryCondition })65  client.get('http://example.com/test').catch(() => { })66})67test('When it satisfies the retry condition', t => {68  const client = axios.create()69  setupResponses(client, [70    () =>71      nock('http://example.com')72        .get('/test')73        .replyWithError(NETWORK_ERROR),74    () =>75      nock('http://example.com')76        .get('/test')77        .reply(200, 'It worked!')78  ])79  axiosTrials(client, { retries: 1, retryCondition: () => true })80  client.get('http://example.com/test').then(result => {81    t.same(result.status, 200)82    nock.cleanAll()83    nock.enableNetConnect()84    t.end()85  })86})87test('should not run transformRequest twice', t => {88  const client = axios.create({89    transformRequest: [JSON.stringify]90  })91  setupResponses(client, [92    () =>93      nock('http://example.com')94        .post('/test', body => {95          t.same(body.a, 'b')96          return true;97        })98        .replyWithError(NETWORK_ERROR),99    () =>100      nock('http://example.com')101        .post('/test', body => {102          t.same(body.a, 'b')103          return true;104        })105        .reply(200, 'It worked!')106  ])107  axiosTrials(client, { retries: 3, retryCondition: () => true })108  client.post('http://example.com/test', { a: 'b' }).then(result => {109    t.same(result.status, 200)110    nock.cleanAll()111    nock.enableNetConnect()112    t.end()113  })114})115test('should reject with a request error if retries <= 0', t => {116  const client = axios.create()117  setupResponses(client, [118    () =>119      nock('http://example.com')120        .get('/test')121        .replyWithError(NETWORK_ERROR)122  ])123  axiosTrials(client, { retries: 0, retryCondition: () => true })124  client.get('http://example.com/test').catch(error => {125    t.same(error, NETWORK_ERROR)126    nock.cleanAll()127    nock.enableNetConnect()128    t.end()129  })130})131test('should reject with a request error if there are more errors than retries', t => {132  const client = axios.create()133  setupResponses(client, [134    () =>135      nock('http://example.com')136        .get('/test')137        .replyWithError(new Error('foo error')),138    () =>139      nock('http://example.com')140        .get('/test')141        .replyWithError(NETWORK_ERROR)142  ])143  axiosTrials(client, { retries: 1, retryCondition: () => true })144  client.get('http://example.com/test').catch(error => {145    t.same(error, NETWORK_ERROR)146    nock.cleanAll()147    nock.enableNetConnect()148    t.end()149  });150})151test('should honor the original `timeout` across retries', t => {152  const client = axios.create()153  setupResponses(client, [154    () =>155      nock('http://example.com')156        .get('/test')157        .delay(75)158        .replyWithError(NETWORK_ERROR),159    () =>160      nock('http://example.com')161        .get('/test')162        .delay(75)163        .replyWithError(NETWORK_ERROR),164    () =>165      nock('http://example.com')166        .get('/test')167        .reply(200)168  ])169  axiosTrials(client, { retries: 3 })170  client.get('http://example.com/test', { timeout: 100 })171    .catch(error => {172      t.same(error.code, 'ECONNABORTED')173      nock.cleanAll()174      nock.enableNetConnect()175      t.end()176    })177})178test('should reset the original `timeout` between requests', t => {179  const client = axios.create()180  setupResponses(client, [181    () =>182      nock('http://example.com')183        .get('/test')184        .delay(75)185        .replyWithError(NETWORK_ERROR),186    () =>187      nock('http://example.com')188        .get('/test')189        .delay(75)190        .replyWithError(NETWORK_ERROR),191    () =>192      nock('http://example.com')193        .get('/test')194        .reply(200)195  ])196  axiosTrials(client, { retries: 3, shouldResetTimeout: true })197  client.get('http://example.com/test', { timeout: 100 }).then(result => {198    t.same(result.status, 200)199    nock.cleanAll()200    nock.enableNetConnect()201    t.end()202  })203})204test('should reject with errors without a `config` property without retrying', t => {205  const client = axios.create()206  setupResponses(client, [207    () =>208      nock('http://example.com')209        .get('/test')210        .replyWithError(NETWORK_ERROR),211    () =>212      nock('http://example.com')213        .get('/test')214        .reply(200)215  ])216  // Force returning a plain error without extended information from Axios217  const generatedError = new Error()218  client.interceptors.response.use(undefined, () => Promise.reject(generatedError))219  axiosTrials(client, { retries: 1, retryCondition: () => true })220  client.get('http://example.com/test').catch(error => {221    t.same(error, generatedError)222    nock.cleanAll()223    nock.enableNetConnect()224    t.end()225  })226})227test('when it does NOT satisfy the retry condition', t => {228  const client = axios.create()229  setupResponses(client, [230    () =>231      nock('http://example.com')232        .get('/test')233        .replyWithError(NETWORK_ERROR),234    () =>235      nock('http://example.com')236        .get('/test')237        .reply(200, 'It worked!')238  ]);239  axiosTrials(client, { retries: 1, retryCondition: () => false })240  client.get('http://example.com/test').catch(error => {241    t.same(error, NETWORK_ERROR)242    nock.cleanAll()243    nock.enableNetConnect()244    t.end()245  })246})247test('With custom retry it should execute for each retry', t => {248  const client = axios.create();249  setupResponses(client, [250    () =>251      nock('http://example.com')252        .get('/test')253        .replyWithError(NETWORK_ERROR),254    () =>255      nock('http://example.com')256        .get('/test')257        .replyWithError(NETWORK_ERROR),258    () =>259      nock('http://example.com')260        .get('/test')261        .replyWithError(NETWORK_ERROR),262    () =>263      nock('http://example.com')...axiosRetry.spec.ts
Source:axiosRetry.spec.ts  
...35    nock.enableNetConnect()36  })37  it('ãæ£å¸¸ç³»ã200ãè¿ãããã®ã§ãªãã©ã¤ããããretryCountã®å¤ã¯å¤ãããªã', done => {38    const client = axios.create()39    setupResponses(client, [40      // ååãªã¯ã¨ã¹ã41      () =>42        nock('http://example.com')43          .get('/test')44          .reply(200)45    ])46    axiosRetry(client)47    client48      .get('http://example.com/test')49      .then(result => {50        expect(result.status).toBe(200)51        expect(result.config[namespace]?.retryCount).toBe(0)52        done()53      })54  })55  it('ãç°å¸¸ç³»ãã¨ã©ã¼ãè¿ãããã®ã§ãªãã©ã¤ãããretryCountã®å¤ãå¢ãã', done => {56    const client = axios.create()57    setupResponses(client, [58      // ååãªã¯ã¨ã¹ã59      () =>60        nock('http://example.com')61          .get('/test')62          .replyWithError(NETWORK_ERROR),63      // ãªãã©ã¤ 1åç®64      () =>65        nock('http://example.com')66          .get('/test')67          .replyWithError(NETWORK_ERROR),68      // ãªãã©ã¤ 2åç®69      () =>70        nock('http://example.com')71          .get('/test')72          .reply(200)73    ])74    // client.interceptors.response.use(undefined, (error) => {75    //   console.log(error.code) // ECONNRESET76    //   return Promise.reject(error)77    // })78    axiosRetry(client, { retries: 3 })79    client80      .get('http://example.com/test')81      .then(result => {82        expect(result.status).toBe(200)83        expect(result.config[namespace]?.retryCount).toBe(2)84        done()85      })86  })87})88/**89 * æ£å¸¸ç³»90 * - ã¿ã¤ã ã¢ã¦ãããªã ãªãã©ã¤ããªã91 * ç°å¸¸ç³»92 * - ã¿ã¤ã ã¢ã¦ãããªã ãªãã©ã¤ãã93 * - ã¿ã¤ã ã¢ã¦ããã ãªãã©ã¤ããªã94 * - ã¿ã¤ã ã¢ã¦ããã ãªãã©ã¤ãã95 */96describe('timeout', () => {97  afterEach(() => {98    nock.cleanAll()99    nock.enableNetConnect()100  })101  it('ãæ£å¸¸ç³»ãã¿ã¤ã ã¢ã¦ã以å
ã«ã¬ã¹ãã³ã¹ãè¿ãããã®ã§ãªãã©ã¤ããããtimeoutã®å¤ã¯å¤ãããªã', done => {102    const client = axios.create({103      timeout: 500,104    })105    setupResponses(client, [106      () =>107        nock('http://example.com')108          .get('/test')109          .delay(400) // timeout=500110          .reply(200)111    ])112    axiosRetry(client)113    client114      .get('http://example.com/test')115      .then(result => {116        expect(result.status).toBe(200)117        expect(result.config.timeout).toBe(500)118        done()119      })120  })121  it('ãç°å¸¸ç³»ãã¿ã¤ã ã¢ã¦ã以å
ã«ã¬ã¹ãã³ã¹ãè¿ããããã¨ã©ã¼ãªã®ã§ãªãã©ã¤ãããtimeoutã®å¤ãå¢ãã', done => {122    const client = axios.create({123      timeout: 500,124    })125    setupResponses(client, [126      () =>127        nock('http://example.com')128          .get('/test')129          .delay(400) // timeout=500130          .replyWithError(NETWORK_ERROR),131      () =>132        nock('http://example.com')133          .get('/test')134          .delay(800) // timeout=1000135          .replyWithError(NETWORK_ERROR),136      () =>137        nock('http://example.com')138          .get('/test')139          .delay(1200) // timeout=1500140          .reply(200)141    ])142    axiosRetry(client, { retries: 3, retryDelay: () => 500 })143    client144      .get('http://example.com/test')145      .then(result => {146        expect(result.status).toBe(200)147        /**148         * 1. timeout=500 + delay=500 = 1000149         * 2. timeout=1000 + delay=500 = 1500150         * 3. timeoutã®å¤ã¯å¤åããªã (200ãè¿ãããã®ã§axiosRetryã®onRejectedã¯å®è¡ãããªã)151         */152        expect(result.config.timeout).toBe(1500)153        done()154      })155  })156  it('ãç°å¸¸ç³»ãã¿ã¤ã ã¢ã¦ã以å
ã«ã¬ã¹ãã³ã¹ãè¿ãããªãããªãã©ã¤ããããtimeoutã®å¤ã¯å¤ãããªã', done => {157    const client = axios.create({158      timeout: 100,159    })160    // ã¿ã¤ã ã¢ã¦ãããå ´å code=ECONNABORTED161    setupResponses(client, [162      () =>163        nock('http://example.com')164          .get('/test')165          .delay(500) // timeout=100166          .replyWithError(NETWORK_ERROR),167    ])168    axiosRetry(client)169    client170      .get('http://example.com/test')171      .catch(error => {172        expect(error.config.timeout).toBe(100)173        done()174      })175  })176  it('ãç°å¸¸ç³»ãã¿ã¤ã ã¢ã¦ã以å
ã«ã¬ã¹ãã³ã¹ãè¿ãããªãã®ã§ãªãã©ã¤ãããtimeoutã®å¤ãå¢ãã', done => {177    const client = axios.create({178      timeout: 100,179    })180    // ã¿ã¤ã ã¢ã¦ãããå ´å code=ECONNABORTED181    setupResponses(client, [182      () =>183        nock('http://example.com')184          .get('/test')185          .delay(500) // timeout=100186          .replyWithError(NETWORK_ERROR),187      () =>188        nock('http://example.com')189          .get('/test')190          .delay(500) // timeout=200191          .replyWithError(NETWORK_ERROR),192      () =>193        nock('http://example.com')194          .get('/test')195          .delay(500) // timeout=300...index.js
Source:index.js  
...39  };40  [200, 503, 404].forEach(statusCode => {41    describe('when endpoint returns ' + statusCode, () => {42      before(() => {43        return setupResponses([statusCode]);44      });45      it('does not retry request', () => {46        return fetchRetry(baseUrl)47          .then(getCallCount)48          .should.eventually.equal(1);49      });50    });51  });52  describe('when configured to retry on a specific HTTP code', () => {53    describe('and it never succeeds', () => {54      const retryOn = [503];55      beforeEach(() => {56        return setupResponses([503, 503, 503, 503]);57      });58      it('retries the request #retries times', () => {59        const init = {60          retries: 3,61          retryDelay: 100,62          retryOn63        };64        const expectedCallCount = init.retries + 1;65        return fetchRetry(baseUrl, init)66          .then(getCallCount)67          .should.eventually.equal(expectedCallCount);68      });69      it('eventually resolves the promise with the response of the last request', () => {70        const init = {71          retries: 3,72          retryDelay: 100,73          retryOn74        };75        const expectedResponse = {76          status: 503,77          ok: false78        };79        return fetchRetry(baseUrl, init)80          .then(response => {81            return {82              status: response.status,83              ok: response.ok84            };85          })86          .should.become(expectedResponse);87      });88    });89    describe('and it eventually succeeds', () => {90      const retryOnStatus = 503;91      const responses = [503, 503, 200];92      const requestsToRetry = responses93        .filter(response => response === retryOnStatus)94        .length;95      beforeEach(() => {96        return setupResponses(responses);97      });98      it('retries the request up to #retries times', () => {99        const init = {100          retries: 3,101          retryDelay: 100,102          retryOn: [retryOnStatus]103        };104        const expectedCallCount = requestsToRetry + 1;105        return fetchRetry(baseUrl, init)106          .then(getCallCount)107          .should.eventually.equal(expectedCallCount);108      });109      it('eventually resolves the promise with the received response of the last request', () => {110        const init = {111          retries: 3,112          retryDelay: 100,113          retryOn: [retryOnStatus]114        };115        const expectedResponse = {116          status: 200,117          ok: true118        };119        return fetchRetry(baseUrl, init)120          .then(response => {121            return {122              status: response.status,123              ok: response.ok124            };125          })126          .should.become(expectedResponse);127      });128    });129  });130  describe('when configured to retry on a set of HTTP codes', () => {131    describe('and it never succeeds', () => {132      const retryOn = [503, 404];133      beforeEach(() => {134        return setupResponses([503, 404, 404, 503]);135      });136      it('retries the request #retries times', () => {137        const init = {138          retries: 3,139          retryDelay: 100,140          retryOn141        };142        const expectedCallCount = init.retries + 1;143        return fetchRetry(baseUrl, init)144          .then(getCallCount)145          .should.eventually.equal(expectedCallCount);146      });147    });148  });...Using AI Code Generation
1import setupResponses from 'storybook-root-decorator';2import { storiesOf } from '@storybook/react';3import { withInfo } from '@storybook/addon-info';4import { withKnobs } from '@storybook/addon-knobs';5import { withA11y } from '@storybook/addon-a11y';6import { withTests } from '@storybook/addon-jest';7import { withPerformance } from 'storybook-addon-performance';8import { withScreenshot } from 'storybook-chrome-screenshot';9import { withResponsive } from 'storybook-addon-responsive';10import { withConsole } from '@storybook/addon-console';11import { withViewport } from '@storybook/addon-viewport';12import { withPuppeteer } from 'storybook-addon-puppeteer';13import { withCssResources } from '@storybook/addon-cssresources';14import { withContexts } from '@storybook/addon-contexts/react';15import { withRedux } from 'storybook-addon-redux';16import { withOptions } from '@storybook/addon-options';17setupResponses();18const stories = storiesOf('test', module);19stories.addDecorator(withKnobs);20stories.addDecorator(withInfo);21stories.addDecorator(withA11y);22stories.addDecorator(23  withTests({24    results: {25      summary: {26      },27        {28        },29        {30        },31    },32  })33);34stories.addDecorator(withPerformance);35stories.addDecorator(withScreenshot);36stories.addDecorator(withResponsive);37stories.addDecorator((storyFn, context) => withConsole()(storyFn)(context));38stories.addDecorator(withViewport);39stories.addDecorator(withPuppeteer);40stories.addDecorator(withCssResources);41stories.addDecorator(42  withContexts([43    {44        {45          props: {46              { name: 'light', value: 'light' },47              { name: 'dark', value: 'dark' },48          },Using AI Code Generation
1import { setupResponses } from "storybook-root-decorator";2setupResponses();3setupResponses({});4setupResponses({5  defaultResponse: {6    data: {7    },8  },9});10setupResponses({11  defaultResponse: {12    data: {13    },14  },15  mockResponse: {16    data: {17    },18  },19});20setupResponses({21  defaultResponse: {22    data: {23    },24  },25  mockResponse: {26    data: {27    },28  },29});30setupResponses({31  defaultResponse: {32    data: {33    },34  },35  mockResponse: {36    data: {37    },38  },39});40setupResponses({41  defaultResponse: {42    data: {43    },44  },45  mockResponse: {46    data: {47    },48  },49});50setupResponses({51  defaultResponse: {52    data: {Using AI Code Generation
1import { setupResponses } from 'storybook-root-decorator';2import { setupResponses } from 'storybook-root-decorator';3import { setupResponses } from 'storybook-root-decorator';4import { setupResponses } from 'storybook-root-decorator';5import { setupResponses } from 'storybook-root-decorator';6import { setupResponses } from 'storybook-root-decorator';7import { setupResponses } from 'storybook-root-decorator';8import { setupResponses } from 'storybook-root-decorator';9import { setupResponses } from 'storybook-root-decorator';10import { setupResponses } from 'storybook-root-decorator';11import { setupResponses } from 'storybook-root-decorator';12import { setupResponses } from 'storybook-root-decorator';13import { setupResponses } from 'storybook-root-decorator';14import { setupResponses } from 'storybook-root-decorator';15import { setupResponses } from 'storybook-root-decorator';16import { setupResponses } from 'storybook-root-decorator';Using AI Code Generation
1import { setupResponses } from 'storybook-root-decorator';2import { storiesOf } from '@storybook/react';3import { withKnobs } from '@storybook/addon-knobs';4import MyComponent from './MyComponent';5import data from './data';6storiesOf('MyComponent', module)7  .addDecorator(withKnobs)8  .add('default', () => {9    setupResponses(data);10    return <MyComponent />;11  });12{13  "path1": {14    "method1": {15      "response1": {16        "headers": {},17        "body": {}18      },19      "response2": {20        "headers": {},21        "body": {}22      }23    },24    "method2": {25      "response1": {26        "headers": {},27        "body": {}28      },29      "response2": {30        "headers": {},31        "body": {}32      }33    }34  },35  "path2": {36    "method1": {37      "response1": {38        "headers": {},39        "body": {}40      },41      "response2": {42        "headers": {},43        "body": {}44      }45    },46    "method2": {47      "response1": {48        "headers": {},49        "body": {}50      },51      "response2": {52        "headers": {},53        "body": {}54      }55    }56  }57}58import { createData } from 'storybook-root-decorator';59import { path1, path2Using AI Code Generation
1import { setupResponses } from 'storybook-root-decorator';2import { setupResponses } from 'storybook-root-decorator';3import { setupResponses } from 'storybook-root-decorator';4import { setupResponses } from 'storybook-root-decorator';5import { setupResponses } from 'storybook-root-decorator';6import { setupResponses } from 'storybook-root-decorator';7import { setupResponses } from 'storybook-root-decorator';8import { setupResponses } from 'storybook-root-decorator';9import { setupResponses } from 'storybook-root-decorator';10import { setupResponses } from 'storybook-root-decorator';11import { setupResponses } from 'storybook-root-decorator';12import { setupResponses } from 'storybook-root-decorator';13import { setupResponses } from 'storybook-root-decorator';Using AI Code Generation
1import { setupResponses } from 'storybook-root-decorator';2setupResponses();3import { storiesOf } from '@storybook/react';4import { withKnobs } from '@storybook/addon-knobs';5import { withMockedResponses } from 'storybook-root-decorator';6import MyComponent from '../src/MyComponent';7storiesOf('MyComponent', module)8  .addDecorator(withKnobs)9  .addDecorator(withMockedResponses('/path/to/responses.json'))10  .add('default', () => <MyComponent />);11{12    {13      "body": {14      }15    }16}17import { storiesOf } from '@storybook/react';18import { withKnobs } from '@storybook/addon-knobs';19import { withMockedResponses } from 'storybook-root-decorator';20import MyComponent from '../src/MyComponent';21storiesOf('MyComponent', module)22  .addDecorator(withKnobs)23  .addDecorator(withMockedResponses('/path/to/responses.json'))24  .add('default', () => <MyComponent />)25  .add('with different response', () => <MyComponent />, {26  });27{28    {29      "body": {30      }31    }32}33{34    {35      "body": {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!!
