Created
July 6, 2020 12:45
-
-
Save zeekrey/4ca1a768ec4cc5793c3f41c88ee66eb2 to your computer and use it in GitHub Desktop.
Just a simple Firebase cleanup script to delete a given user by eMail address before a cypress test runs.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// signup.spec.js | |
/// <reference types="cypress" /> | |
const path = require('path') | |
describe('Testing the user system', () => { | |
let user | |
beforeEach(() => { | |
cy.visit('http://localhost:3000/login') | |
cy.fixture('user.json').then((u) => (user = u)) | |
}) | |
it('successfully signs up', () => { | |
console.log(user) | |
cy.exec('node ./cypress/cleanupFirebase.js', { | |
env: { email: user.email }, | |
}).then((result) => { | |
console.log(result.code) | |
console.log(result.stderr) | |
console.log(result.stdout) | |
}) | |
/** | |
* cy.exec(command, options) | |
* Actived login via eMail and enter a username, eMail address and password. | |
*/ | |
cy.get('div').contains('Ich habe noch keinen Account').click() | |
cy.get('input[name=name]').type(user.name) | |
cy.get('input[name=email]').type(user.email) | |
cy.get('input[name=password]').type(user.password) | |
cy.get('form').submit() | |
/** | |
* The communication wizard should start. | |
* Select eMail. | |
*/ | |
cy.url().should('include', '/welcome') | |
cy.get('div').contains('E-Mail').click() | |
/** | |
* The eMail input should be filled with the allready provided eMail address | |
*/ | |
cy.get('input[name=email]').should('have.value', user.email) | |
cy.get('form').submit() | |
}) | |
}) | |
// cleanupFirebase.js | |
var admin = require('firebase-admin') | |
var app = admin.initializeApp() | |
if (!process.env.email) console.log('no email provided') | |
admin | |
.auth() | |
.getUserByEmail(process.env.email) | |
.then(function (userRecord) { | |
// See the UserRecord reference doc for the contents of userRecord. | |
// console.log('Successfully fetched user data:', userRecord.toJSON()) | |
admin | |
.auth() | |
.deleteUser(userRecord.uid) | |
.then(function () { | |
console.log('Successfully deleted user') | |
process.exit(0) | |
}) | |
.catch(function (error) { | |
console.log(error.code) | |
process.exit(1) | |
}) | |
}) | |
.catch(function (error) { | |
if (error.code === 'auth/user-not-found') process.exit(0) | |
console.log('Error fetching user data:', error) | |
process.exit(1) | |
}) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment