Best JavaScript code snippet using playwright-internal
notebooks_controller_spec.js
Source:notebooks_controller_spec.js  
1const request = require('request');2const models = require('../src/models');3const app = require('../src/app');4const path = require('path');5const mockDatabase = require('./helpers/mockDatabase');6const port = 3001;7const baseUrl = `http://localhost:${port}`;8describe('Notebook endpoints', () => {9  let server;10  beforeAll(() => {11    // Start the server12    server = app.listen(port);13  });14  afterAll(() => {15    // Stop the server16    server.close();17  });18  mockDatabase.useWithJasmine(models.database, [19    path.resolve(path.join(__dirname, 'fixtures/notebooks.json')),20    path.resolve(path.join(__dirname, 'fixtures/notes.json'))21  ]);22  describe('GET /notebooks', () => {23    it('returns a list of notebooks', done => {24      // Send a request25      request.get(`${baseUrl}/notebooks`, (err, response, body) => {26        expect(err).toBeFalsy();27        expect(response).toBeOk();28        expect(response).toContainJson();29        const actual = JSON.parse(body);30        const expected = [31          { id: 1, title: 'Research' },32          { id: 2, title: 'Chores' }33        ];34        expect(actual.length).toEqual(expected.length);35        for(let i = 0; i < expected.length; ++i) {36          expect(actual).toContain(jasmine.objectContaining(expected[i]));37        }38        done();39      });40    });41  });42  describe('GET /notebooks/:notebookId/notes', () => {43    it('returns all notes from the specified notebook', done => {44      // Send a request45      request.get(`${baseUrl}/notebooks/1/notes`, (err, response, body) => {46        expect(err).toBeFalsy();47        expect(response).toBeOk();48        expect(response).toContainJson();49        const actual = JSON.parse(body);50        const expected = [51          { id: 1, title: 'Perpetual motion machine', content: 'Not working.' },52          { id: 2, title: 'Vaccines', content: 'Do not cause autism.' }53        ];54        expect(actual.length).toEqual(expected.length);55        for(let i = 0; i < expected.length; ++i) {56          expect(actual).toContain(jasmine.objectContaining(expected[i]));57        }58        done();59      });60    });61  });62  describe('POST /notebooks', () => {63    const newNotebookAttrs = { title: 'Ideas' };64    it('creates a new notebook', done => {65      // Send a request66      request.post(`${baseUrl}/notebooks`, {67        headers: {68          ['content-type']: 'application/json',69        },70        body: JSON.stringify(newNotebookAttrs)71      }, (err, response) => {72        expect(err).toBeFalsy();73        expect(response).toBeOk();74        mockDatabase.db.query('SELECT * FROM Notebooks WHERE id = 3').then(queryResponse => {75          expect(queryResponse[0].length).toEqual(1);76          const actual = queryResponse[0][0];77          const expected = newNotebookAttrs;78          expect(actual).toEqual(jasmine.objectContaining(expected));79        });80        done();81      });82    });83    it('returns the new notebook', done => {84      // Send a request85      request.post(`${baseUrl}/notebooks`, {86        headers: {87          ['content-type']: 'application/json',88        },89        body: JSON.stringify(newNotebookAttrs)90      }, (err, response, body) => {91        expect(err).toBeFalsy();92        expect(response).toBeOk();93        expect(response).toContainJson();94        const actual = JSON.parse(body);95        const expected = newNotebookAttrs;96        expect(actual).toEqual(jasmine.objectContaining(expected));97        done();98      });99    });100  });101  describe('GET /notebooks/:notebookId', () => {102    it('returns the notebook with specified ID', done => {103      // Send a request104      request.get(`${baseUrl}/notebooks/1`, (err, response, body) => {105        expect(err).toBeFalsy();106        expect(response).toBeOk();107        expect(response).toContainJson();108        const actual = JSON.parse(body);109        const expected = { id: 1, title: 'Research' };110        expect(actual).toEqual(jasmine.objectContaining(expected));111        done();112      });113    });114  });115  describe('DELETE /notebooks/:notebookId', () => {116    it('deletes the notebook', done => {117      // Send a request118      request.delete(`${baseUrl}/notebooks/1`, (err, response) => {119        expect(err).toBeFalsy();120        expect(response).toBeOk();121        mockDatabase.db.query('SELECT * FROM Notebooks WHERE id = 1').then(queryResponse => {122          expect(queryResponse[0]).toEqual([]);123        });124        mockDatabase.db.query('SELECT * FROM Notes WHERE notebookId = 1').then(queryResponse => {125          expect(queryResponse[0]).toEqual([]);126        });127        done();128      });129    });130    it('returns an empty object', done => {131      // Send a request132      request.delete(`${baseUrl}/notebooks/1`, (err, response, body) => {133        expect(err).toBeFalsy();134        expect(response).toBeOk();135        expect(response).toContainJson();136        expect(JSON.parse(body)).toEqual({});137        done();138      });139    });140  });141  describe('PUT /notebooks/:notebookId', () => {142    const updatedNotebookAttrs = { title: 'Study' };143    it('updates the notebook', done => {144      // Send a request145      request.put(`${baseUrl}/notebooks/1`, {146        headers: {147          ['content-type']: 'application/json',148        },149        body: JSON.stringify(updatedNotebookAttrs)150      }, (err, response) => {151        expect(err).toBeFalsy();152        expect(response).toBeOk();153        mockDatabase.db.query('SELECT * FROM Notebooks WHERE id = 1').then(queryResponse => {154          const actual = queryResponse[0][0];155          const expected = updatedNotebookAttrs;156          expect(actual).toEqual(jasmine.objectContaining(expected));157        });158        done();159      });160    });161    it('returns the updated notebook', done => {162      // Send a request163      request.put(`${baseUrl}/notebooks/1`, {164        headers: {165          ['content-type']: 'application/json',166        },167        body: JSON.stringify(updatedNotebookAttrs)168      }, (err, response, body) => {169        expect(err).toBeFalsy();170        expect(response).toBeOk();171        expect(response).toContainJson();172        const actual = JSON.parse(body);173        const expected = updatedNotebookAttrs;174        expect(actual).toEqual(jasmine.objectContaining(expected));175        done();176      });177    });178  });...notes_controller_spec.js
Source:notes_controller_spec.js  
1const request = require('request');2const models = require('../src/models');3const app = require('../src/app');4const path = require('path');5const mockDatabase = require('./helpers/mockDatabase');6const port = 3001;7const baseUrl = `http://localhost:${port}`;8describe('Note endpoints', () => {9  let server;10  beforeAll(() => {11    // Start the server12    server = app.listen(port);13  });14  afterAll(() => {15    // Stop the server16    server.close();17  });18  mockDatabase.useWithJasmine(models.database, [19    path.resolve(path.join(__dirname, 'fixtures/notebooks.json')),20    path.resolve(path.join(__dirname, 'fixtures/notes.json'))21  ]);22  describe('GET /notes', () => {23    it('returns a list of notes', done => {24      // Send a request25      request.get(`${baseUrl}/notes`, (err, response, body) => {26        expect(err).toBeFalsy();27        expect(response).toBeOk();28        expect(response).toContainJson();29        const actual = JSON.parse(body);30        const expected = [31          { id: 1, title: 'Perpetual motion machine', content: 'Not working.' },32          { id: 2, title: 'Vaccines', content: 'Do not cause autism.' },33          { id: 3, title: 'Clean the house', content: 'Use strong cleaning products.' }34        ];35        expect(actual.length).toEqual(expected.length);36        for(let i = 0; i < expected.length; ++i) {37          expect(actual).toContain(jasmine.objectContaining(expected[i]));38        }39        done();40      });41    });42  });43  describe('POST /notes', () => {44    const newNoteAttrs = {45      title: 'Mow the lawn',46      content: 'Front and back.',47      notebookId: 248    };49    it('creates a new note', done => {50      // Send a request51      request.post(`${baseUrl}/notes`, {52        headers: {53          ['content-type']: 'application/json',54        },55        body: JSON.stringify(newNoteAttrs)56      }, (err, response) => {57        expect(err).toBeFalsy();58        expect(response).toBeOk();59        mockDatabase.db.query('SELECT * FROM Notes WHERE id = 4').then(queryResponse => {60          expect(queryResponse[0].length).toEqual(1);61          const actual = queryResponse[0][0];62          const expected = newNoteAttrs;63          expect(actual).toEqual(jasmine.objectContaining(expected));64        });65        done();66      });67    });68    it('returns the new note', done => {69      // Send a request70      request.post(`${baseUrl}/notes`, {71        headers: {72          ['content-type']: 'application/json',73        },74        body: JSON.stringify(newNoteAttrs)75      }, (err, response, body) => {76        expect(err).toBeFalsy();77        expect(response).toBeOk();78        expect(response).toContainJson();79        const actual = JSON.parse(body);80        const expected = newNoteAttrs;81        expect(actual).toEqual(jasmine.objectContaining(expected));82        done();83      });84    });85  });86  describe('GET /notes/:noteId', () => {87    it('returns the note with specified ID', done => {88      // Send a request89      request.get(`${baseUrl}/notes/1`, (err, response, body) => {90        expect(err).toBeFalsy();91        expect(response).toBeOk();92        expect(response).toContainJson();93        const actual = JSON.parse(body);94        const expected = { id: 1, title: 'Perpetual motion machine', content: 'Not working.' };95        expect(actual).toEqual(jasmine.objectContaining(expected));96        done();97      });98    });99  });100  describe('DELETE /notes/:noteId', () => {101    it('deletes the note', done => {102      // Send a request103      request.delete(`${baseUrl}/notes/1`, (err, response) => {104        expect(err).toBeFalsy();105        expect(response).toBeOk();106        mockDatabase.db.query('SELECT * FROM Notes WHERE id = 1').then(queryResponse => {107          expect(queryResponse[0]).toEqual([]);108        });109        done();110      });111    });112    it('returns an empty object', done => {113      // Send a request114      request.delete(`${baseUrl}/notes/1`, (err, response, body) => {115        expect(err).toBeFalsy();116        expect(response).toBeOk();117        expect(response).toContainJson();118        expect(JSON.parse(body)).toEqual({});119        done();120      });121    });122  });123  describe('PUT /notes/:noteId', () => {124    const updatedNoteAttrs = {125      title: 'Impossible machine',126      content: 'Still impossible.',127      notebookId: 2128    };129    it('updates the note', done => {130      // Send a request131      request.put(`${baseUrl}/notes/1`, {132        headers: {133          ['content-type']: 'application/json',134        },135        body: JSON.stringify(updatedNoteAttrs)136      }, (err, response) => {137        expect(err).toBeFalsy();138        expect(response).toBeOk();139        mockDatabase.db.query('SELECT * FROM Notes WHERE id = 1').then(queryResponse => {140          const actual = queryResponse[0][0];141          const expected = updatedNoteAttrs;142          expect(actual).toEqual(jasmine.objectContaining(expected));143        });144        done();145      });146    });147    it('returns the updated note', done => {148      // Send a request149      request.put(`${baseUrl}/notes/1`, {150        headers: {151          ['content-type']: 'application/json',152        },153        body: JSON.stringify(updatedNoteAttrs)154      }, (err, response, body) => {155        expect(err).toBeFalsy();156        expect(response).toBeOk();157        expect(response).toContainJson();158        const actual = JSON.parse(body);159        const expected = updatedNoteAttrs;160        expect(actual).toEqual(jasmine.objectContaining(expected));161        done();162      });163    });164  });...signup.spec.js
Source:signup.spec.js  
...10    }11    const response = await request.post(`${BASE_URL_API}/dev/v1/users`, {12      data: payload13    })14    expect(response).toBeOK()15    const responseBody = await response.json()16    expect(responseBody.user.fullName).toEqual(payload.fullName)17    expect(responseBody.user.email).toEqual(payload.email)18    expect(responseBody.user.loginType).toEqual([payload.loginType])19  })20  test('should not be able to signup by api with invalid email', async ({ request }) => {21    const payload = {22      fullName: data.auth.register_error.invalid_email.name,23      password: data.auth.register_error.invalid_email.password,24      email: data.auth.register_error.invalid_email.email,25      loginType: data.auth.register_error.invalid_email.loginType26    }27    const response = await request.post(`${BASE_URL_API}/dev/v1/users`, {28      data: payload29    })30    expect(response).not.toBeOK()31    const responseBody = await response.json()32    expect(responseBody.error.status).toEqual(400)33    expect(responseBody.error.code).toEqual('INVALID_EMAIL')34    expect(responseBody.error.message).toEqual('O e-mail é inválido')35    expect(responseBody.error.type).toEqual('ApiError')36  })37  test('should not be able to signup by api with empty name', async ({ request }) => {38    const payload = {39      password: data.auth.register.password,40      email: data.auth.register.email,41      loginType: data.auth.register.loginType42    }43    const response = await request.post(`${BASE_URL_API}/dev/v1/users`, {44      data: payload45    })46    expect(response).not.toBeOK()47    const responseBody = await response.json()48    expect(responseBody.error.status).toEqual(400)49    expect(responseBody.error.code).toEqual('FULLNAME_REQUIRED')50    expect(responseBody.error.message).toEqual('"fullName" é obrigatório')51    expect(responseBody.error.type).toEqual('ApiError')52  })53  test('should not be able to signup by api with empty password', async ({ request }) => {54    const payload = {55      fullName: data.auth.register.name,56      email: data.auth.register.email,57      loginType: data.auth.register.loginType58    }59    const response = await request.post(`${BASE_URL_API}/dev/v1/users`, {60      data: payload61    })62    expect(response).not.toBeOK()63    const responseBody = await response.json()64    expect(responseBody.error.status).toEqual(400)65    expect(responseBody.error.code).toEqual('PASSWORD_REQUIRED')66    expect(responseBody.error.message).toEqual('"password" é obrigatório')67    expect(responseBody.error.type).toEqual('ApiError')68  })69  test('should not be able to signup by api with empty loginType', async ({ request }) => {70    const payload = {71      fullName: data.auth.register.name,72      password: data.auth.register.password,73      email: data.auth.register.email74    }75    const response = await request.post(`${BASE_URL_API}/dev/v1/users`, {76      data: payload77    })78    expect(response).not.toBeOK()79    const responseBody = await response.json()80    expect(responseBody.error.status).toEqual(400)81    expect(responseBody.error.code).toEqual('LOGINTYPE_REQUIRED')82    expect(responseBody.error.message).toEqual('"loginType" é obrigatório')83    expect(responseBody.error.type).toEqual('ApiError')84  })...httpResponseMatchers.js
Source:httpResponseMatchers.js  
1const toBeOk = () => ({2  compare: (actual) => {3    const result = {};4    result.pass = /^2\d\d$/.test(`${actual.statusCode}`);5    if(result.pass) {6      // Failure message for when the matcher is negated7      result.message = `Expected HTTP status code not to be 2xx OK, got ${actual.statusCode}`;8    } else {9      // Normal failure message10      result.message = `Expected HTTP status code to be 2xx OK, got ${actual.statusCode}`;11    }12    return result;13  }14});15const toContainJson = () => ({16  compare: (actual) => {17    const result = {};18    result.pass = actual.headers['content-type'].match('application/json');19    if(result.pass) {20      // Failure message for when the matcher is negated21      result.message = 'Expected content type not to be JSON';22    } else {23      // Normal failure message24      result.message = 'Expected content type to be JSON';25    }26    return result;27  }28});29// Register matchers so that they can be used in our tests30beforeEach(() => {31  jasmine.addMatchers({ toBeOk, toContainJson });...Using AI Code Generation
1const { toBeOK } = require('expect-playwright');2expect.extend({ toBeOK });3const { toBeOK } = require('expect-playwright');4expect.extend({ toBeOK });5const { toBeOK } = require('expect-playwright');6expect.extend({ toBeOK });7const { toBeOK } = require('expect-playwright');8expect.extend({ toBeOK });9const { toBeOK } = require('expect-playwright');10expect.extend({ toBeOK });11const { toBeOK } = require('expect-playwright');12expect.extend({ toBeOK });13const { toBeOK } = require('expect-playwright');14expect.extend({ toBeOK });15const { toBeOK } = require('expect-playwright');16expect.extend({ toBeOK });17const { toBeOK } = require('expect-playwright');18expect.extend({ toBeOK });19const { toBeOK } = require('expect-playwright');20expect.extend({ toBeOK });21const { toBeOK } = require('expect-playwright');22expect.extend({ toBeOK });23const { toBeOK } = require('expect-playwright');24expect.extend({ toBeOK });25const { toBeOK } = require('expect-playwright');26expect.extend({ toBeOK });27const { toBeOK } = require('expect-playwright');28expect.extend({ toBeOKUsing AI Code Generation
1const { toBeOK } = require('expect-playwright')2expect.extend({ toBeOK })3expect.extend({ toBeOK })4expect(await page.$('selector')).toBeOK()5expect(await page.$('selector')).toBeOK()6import { toBeOK } from 'expect-playwright'7expect.extend({ toBeOK })8expect.extend({ toBeOK })9expect(await page.$('selector')).toBeOK()10expect(await page.$('selector')).toBeOK()11import { toBeOK } from 'expect-playwright'12expect.extend({ toBeOK })13expect.extend({ toBeOK })14expect(await page.$('selector')).toBeOK()15expect(await page.$('selector')).toBeOK()16import { toBeOK } from 'expect-playwright'17expect.extend({ toBeOK })18expect.extend({ toBeOK })19expect(await page.$('selector')).toBeOK()20expect(await page.$('selector')).toBeOK()21import { toBeOK } from 'expect-playwright'22expect.extend({ toBeOK })23expect.extend({ toBeOK })24expect(await page.$('selector')).toBeOK()25expect(awaitUsing AI Code Generation
1expect(page).toBeOK()2expect(page).toBeOK()3expect(page).toBeOK()4expect(page).toBeOK()5expect(page).toBeOK()6expect(page).toBeOK()7expect(page).toBeOK()8expect(page).toBeOK()9expect(page).toBeOK()10expect(page).toBeOK()11expect(page).toBeOK()12expect(page).toBeOK()13expect(page).toBeOK()14expect(page).toBeOK()15expect(page).toBeOK()16expect(page).toBeOK()17expect(page).toBeOK()18expect(page).toBeOK()19expect(page).toBeOK()20expect(page).toBeOK()Using AI Code Generation
1const { toBeOK } = require('jest-playwright-preset/lib/matchers');2expect.extend({ toBeOK });3test('page', async () => {4    await page.waitForTimeout(5000);5    await expect(page).toBeOK();6});7TypeError: expect(...).toBeOK is not a functionUsing AI Code Generation
1const { toBeOK } = require('expect-playwright');2expect.extend({ toBeOK });3test('should be ok', async () => {4  expect(response).toBeOK();5});6test('should be ok', async () => {7  await expect(response).toBeOK();8});9test('should be ok', async () => {10  expect(response).toBeOK();11});12test('should be ok', async () => {13  await expect(response).toBeOK();14});15test('should be ok', async () => {16  expect(response).toBeOK();17});18test('should be ok', async () => {19  await expect(response).toBeOK();20});21test('should be ok', async () => {22  expect(response).toBeOK();23});24test('should be ok', async () => {25  await expect(response).toBeOK();26});27test('should be ok', async () => {28  expect(response).toBeOK();29});30test('should be ok', async () => {31  await expect(response).toBeOK();32});Using AI Code Generation
1const { toBeOK } = require('@playwright/test');2expect.extend({ toBeOK });3test('should load about page', async ({ page }) => {4    await page.click('text=About');5    expect(response.status()).toBeOK();6});7TypeError: expect(...).toBeOK is not a function8const { toBeOK } = require('@playwright/test');9expect.extend({ toBeOK });10test('should load about page', async ({ page }) => {11    await page.click('text=About');12    expect(response.status()).toBeOK();13});14TypeError: expect(...).toBeOK is not a function15const { toBeOK } = require('@playwright/test');16expect.extend({ toBeOK });17test('should load about page', async ({ page }) => {18    await page.click('text=About');19    expect(response.status()).toBeOK();20});21TypeError: expect(...).toBeOK is not a functionUsing AI Code Generation
1const test = require('playwright-test').test;2test('my test', async ({ page }) => {3  expect(await page.title()).toBeOk();4});5const { test, expect } = require('@playwright/test');6test('my test', async ({ page }) => {7  expect(await page.title()).toBeOk();8});9const { test, expect } = require('@playwright/test');10test('my test', async ({ page }) => {11  expect(await page.title()).toBeOk();12});13const { test, expect } = require('@playwright/test');14test('my test', async ({ page }) => {15  expect(await page.title()).toBeOk();16});17const { test, expect } = require('@playwright/test');18test('my test', async ({ page }) => {19  expect(await page.title()).toBeOk();20});21const { test, expect } = require('@playwright/test');22test('my test', async ({ page }) => {23  expect(await page.title()).toBeOk();24});25const { test, expect } = require('@playwright/test');26test('my test', async ({ page }) => {27  expect(await page.title()).toBeOk();28});29const { test, expect } = require('@playwright/test');30test('my test', async ({ page }) => {31  expect(awaitLambdaTest’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!!
