| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- /// <reference types="cypress" />
- /// JSON fixture file can be loaded directly using
- // the built-in JavaScript bundler
- // @ts-ignore
- const requiredExample = require('../../fixtures/example')
- context('Files', () => {
- beforeEach(() => {
- cy.visit('https://example.cypress.io/commands/files')
- })
- beforeEach(() => {
- // load example.json fixture file and store
- // in the test context object
- cy.fixture('example.json').as('example')
- })
- it('cy.fixture() - load a fixture', () => {
- // https://on.cypress.io/fixture
- // Instead of writing a response inline you can
- // use a fixture file's content.
- // when application makes an Ajax request matching "GET **/comments/*"
- // Cypress will intercept it and reply with the object in `example.json` fixture
- cy.intercept('GET', '**/comments/*', { fixture: 'example.json' }).as('getComment')
- // we have code that gets a comment when
- // the button is clicked in scripts.js
- cy.get('.fixture-btn').click()
- cy.wait('@getComment').its('response.body')
- .should('have.property', 'name')
- .and('include', 'Using fixtures to represent data')
- })
- it('cy.fixture() or require - load a fixture', function () {
- // we are inside the "function () { ... }"
- // callback and can use test context object "this"
- // "this.example" was loaded in "beforeEach" function callback
- expect(this.example, 'fixture in the test context')
- .to.deep.equal(requiredExample)
- // or use "cy.wrap" and "should('deep.equal', ...)" assertion
- cy.wrap(this.example)
- .should('deep.equal', requiredExample)
- })
- it('cy.readFile() - read file contents', () => {
- // https://on.cypress.io/readfile
- // You can read a file and yield its contents
- // The filePath is relative to your project's root.
- cy.readFile('cypress.json').then((json) => {
- expect(json).to.be.an('object')
- })
- })
- it('cy.writeFile() - write to a file', () => {
- // https://on.cypress.io/writefile
- // You can write to a file
- // Use a response from a request to automatically
- // generate a fixture file for use later
- cy.request('https://jsonplaceholder.cypress.io/users')
- .then((response) => {
- cy.writeFile('cypress/fixtures/users.json', response.body)
- })
- cy.fixture('users').should((users) => {
- expect(users[0].name).to.exist
- })
- // JavaScript arrays and objects are stringified
- // and formatted into text.
- cy.writeFile('cypress/fixtures/profile.json', {
- id: 8739,
- name: 'Jane',
- email: 'jane@example.com',
- })
- cy.fixture('profile').should((profile) => {
- expect(profile.name).to.eq('Jane')
- })
- })
- })
|