Is it possible to use Cypress e2e testing with a firebase auth project?

后端 未结 6 1416
再見小時候
再見小時候 2021-02-19 03:16

I am exploring Cypress for e2e testing, looks like great software. The problem is Authentication, the Cypress documentation explains why using the UI is very bad here.

So

6条回答
  •  逝去的感伤
    2021-02-19 03:58

    When doing this myself I made custom commands (like cy.login for auth then cy.callRtdb and cy.callFirestore for verifying data). After getting tired of repeating the logic it took to build them, I wrapped it up into a library called cypress-firebase. It includes custom commands and a cli to generate a custom auth token.

    Setup mostly just consists of adding the custom commands in cypress/support/commands.js:

    import firebase from 'firebase/app';
    import 'firebase/auth';
    import 'firebase/database';
    import 'firebase/firestore';
    import { attachCustomCommands } from 'cypress-firebase';
    
    const fbConfig = {
        // Your config from Firebase Console
    };
    
    window.fbInstance = firebase.initializeApp(fbConfig);
    
    attachCustomCommands({ Cypress, cy, firebase })
    

    And adding the plugin to cypress/plugins/index.js:

    const cypressFirebasePlugin = require('cypress-firebase').plugin
    
    module.exports = (on, config) => {
      // `on` is used to hook into various events Cypress emits
      // `config` is the resolved Cypress config
    
      // Return extended config (with settings from .firebaserc)
      return cypressFirebasePlugin(config)
    }
    

    But there full details on setup are available in the setup docs.

    Disclosure, I am the author of cypress-firebase, which is the whole answer.

提交回复
热议问题