mirror of
https://github.com/TryGhost/Ghost.git
synced 2025-01-20 22:42:53 -05:00
Added unit test for TiersRepository
We were completely missing tests for this, and the new logic pushed us under the coverage threshold.
This commit is contained in:
parent
c0ca7b16f6
commit
08597b47ba
1 changed files with 54 additions and 0 deletions
|
@ -0,0 +1,54 @@
|
|||
const assert = require('assert');
|
||||
const sinon = require('sinon');
|
||||
const {Product: ProductModel} = require('../../../../../core/server/models/product');
|
||||
const TierRepository = require('../../../../../core/server/services/tiers/TierRepository');
|
||||
const {Tier} = require('@tryghost/tiers');
|
||||
|
||||
describe('TierRepository', function () {
|
||||
after(function () {
|
||||
sinon.restore();
|
||||
});
|
||||
|
||||
it('Can do basic functionality', async function () {
|
||||
const DomainEvents = {
|
||||
dispatch: sinon.stub()
|
||||
};
|
||||
sinon.stub(ProductModel, 'findAll').resolves([]);
|
||||
sinon.stub(ProductModel, 'findOne').resolves([]);
|
||||
sinon.stub(ProductModel, 'edit').resolves();
|
||||
sinon.stub(ProductModel, 'add').resolves();
|
||||
|
||||
const repository = new TierRepository({
|
||||
DomainEvents,
|
||||
ProductModel
|
||||
});
|
||||
|
||||
await repository.init();
|
||||
|
||||
const tier = await Tier.create({
|
||||
name: 'Test',
|
||||
slug: 'test-tier',
|
||||
type: 'paid',
|
||||
status: 'active',
|
||||
currency: 'USD',
|
||||
monthlyPrice: 5,
|
||||
yearlyPrice: 50
|
||||
});
|
||||
|
||||
await repository.save(tier);
|
||||
|
||||
assert(ProductModel.add.calledOnce);
|
||||
|
||||
const result = await repository.getById(tier.id);
|
||||
|
||||
assert(ProductModel.findOne.notCalled);
|
||||
|
||||
assert(result);
|
||||
|
||||
result.name = 'New Name';
|
||||
|
||||
await repository.save(tier);
|
||||
|
||||
assert(ProductModel.edit.calledOnce);
|
||||
});
|
||||
});
|
Loading…
Add table
Reference in a new issue