Sha256: dfb1e74bec7524f78363b74a09ba9f7c370f7211fa702c83fbb162fcb5bf9717

Contents?: true

Size: 1.37 KB

Versions: 4

Compression:

Stored size: 1.37 KB

Contents

import { request, expect } from '@playwright/test'
import config from '../../playwright.config'

const contextPromise = request.newContext({ baseURL: config.use ? config.use.baseURL : 'http://localhost:5017' })

const appCommands = async (data) => {
  const context = await contextPromise
  const response = await context.post('/__e2e__/command', { data })

  expect(response.ok()).toBeTruthy()
  return response.body
}

const app = (name, options = {}) => appCommands({ name, options }).then((body) => body[0])
const appScenario = (name, options = {}) => app('scenarios/' + name, options)
const appEval = (code) => app('eval', code)
const appFactories = (options) => app('factory_bot', options)

const appVcrInsertCassette = async (cassette_name, options) => {
  const context = await contextPromise;
  if (!options) options = {};

  Object.keys(options).forEach(key => options[key] === undefined ? delete options[key] : {});
  const response = await context.post("/__e2e__/vcr/insert", {data: [cassette_name,options]});
  expect(response.ok()).toBeTruthy();
  return response.body;
}

const appVcrEjectCassette = async () => {
  const context = await contextPromise;

  const response = await context.post("/__e2e__/vcr/eject");
  expect(response.ok()).toBeTruthy();
  return response.body;
}

export { appCommands, app, appScenario, appEval, appFactories, appVcrInsertCassette, appVcrEjectCassette }

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
cypress-on-rails-1.17.0 lib/generators/cypress_on_rails/templates/spec/playwright/support/on-rails.js
cypress-on-rails-1.16.0 lib/generators/cypress_on_rails/templates/spec/playwright/support/on-rails.js
cypress-on-rails-1.15.1 lib/generators/cypress_on_rails/templates/spec/playwright/support/on-rails.js
cypress-on-rails-1.15.0 lib/generators/cypress_on_rails/templates/spec/playwright/support/on-rails.js