Пытаюсь запустить автономное модульное тестирование для моего проекта Firebase. Кажется, я не могу понять, почему следующий тест не работает и не регистрирует console.log ('b') & ('c'). Я предполагаю, что я его неправильно вставил, но не могу понять. По результатам теста и console.log он возвращает только 'a', а затем также возвращает true.
Помощь приветствуется.
index.js
function createFreeAgents(admin) {
admin.database().ref('/CONFIG').update({
"agencyActive" : false,
"listCount" : true
});
**console.log('a')**
admin.database().ref('/FREEAGENTPICK').once('value', snap => {
**console.log('b')**
snap.forEach(team => {
**console.log('c')**
let newAgentObject = {
"rookie": 2,
"senior": 4,
}
admin.database().ref('/FREEAGENTPICK/' + team.key).update(newAgentObject);
})
})
return true;
}
const chai = require('chai');
const expect = chai.expect;
const assert = chai.assert;
const sinon = require('sinon');
const admin = require('firebase-admin');
const test = require('firebase-functions-test')();
const functions = require('../index');
describe('it should update a players score', () => {
let adminInitStub, adminDatabaseStub;
beforeEach(() => {
adminInitStub = sinon.stub(admin, 'initializeApp');
adminDatabaseStub = sinon.stub(admin, 'database');
});
afterEach(() => {
adminInitStub.restore();
test.cleanup();
});
describe('run createFreeAgent()', () => {
it('should run createFreeAgents() and return true', () => {
// Stubs
databaseStub = sinon.stub();
refStub = sinon.stub();
updateStub = sinon.stub();
// Values
configUpdate = {
"agencyActive" : false,
"listCount" : true
};
// DBMocks
adminDatabaseStub = Object.defineProperty(admin, 'database', { get: () => databaseStub });
databaseStub.returns({ ref: refStub });
refStub
.withArgs('/CONFIG')
.onFirstCall()
.returns({ update: updateStub })
.withArgs('/FREEAGENTPICK')
.onFirstCall()
.returns({ once: updateStub })
updateStub
.onFirstCall()
.returns(configUpdate)
.onSecondCall()
.returns(snapFreeAgent)
assert.deepEqual(updateStub('/CONFIG'), configUpdate);
result = functions.createFreeAgents(adminDatabaseStub);
expect(result).to.equal(true);
return;
})
})
})
test output
it should update a players score
run createFreeAgent()
a
√ should run createFreeAgents() and return true
1 passing (13ms)