From 0fa43155860a2fff57591d397e9bb56296874093 Mon Sep 17 00:00:00 2001 From: Jason Claxton Date: Mon, 19 Dec 2022 13:53:42 +0000 Subject: [PATCH 01/13] Implement abstraction period query using Objection MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://eaflood.atlassian.net/browse/WATER-3862 We want to extract data on relevant charge versions, their references and abstraction periods from the DB. We’ll then use this to determine what extractions periods apply for a given charge version and billing period. The first step is getting the data out of the DB. We need to implement that query using our ORM Objection. From 1b344d8872dbfdf623ca0496c08749e91aa028d8 Mon Sep 17 00:00:00 2001 From: Jason Claxton Date: Mon, 19 Dec 2022 15:50:43 +0000 Subject: [PATCH 02/13] use model to query charge versions --- .../fetch-charge-versions.service.js | 23 +++++++++---------- 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/app/services/supplementary-billing/fetch-charge-versions.service.js b/app/services/supplementary-billing/fetch-charge-versions.service.js index a1df9fe4d1..f4c7dbe6b0 100644 --- a/app/services/supplementary-billing/fetch-charge-versions.service.js +++ b/app/services/supplementary-billing/fetch-charge-versions.service.js @@ -5,7 +5,7 @@ * @module FetchChargeVersionsService */ -const { db } = require('../../../db/db.js') +const ChargeVersion = require('../../models/charge-version.model.js') /** * Fetch all SROC charge versions linked to licences flagged for supplementary billing that are in the period being @@ -26,17 +26,16 @@ async function go (regionId, billingPeriod) { } async function _fetch (regionId, billingPeriod) { - const chargeVersions = db - .select('chv.chargeVersionId', 'chv.scheme', 'chv.startDate', 'chv.endDate', 'lic.licenceId', 'lic.licenceRef') - .from({ chv: 'water.charge_versions' }) - .innerJoin({ lic: 'water.licences' }, 'chv.licence_id', 'lic.licence_id') - .where({ - scheme: 'sroc', - 'lic.include_in_supplementary_billing': 'yes', - 'lic.region_id': regionId - }) - .andWhere('chv.start_date', '>=', billingPeriod.startDate) - .andWhere('chv.start_date', '<=', billingPeriod.endDate) + const chargeVersions = await ChargeVersion.query() + .select( + 'chargeVersionId', 'scheme', 'chargeVersions.startDate', 'endDate', 'licence.licenceId', 'licence.licenceRef' + ) + .innerJoinRelated('licence') + .where('scheme', 'sroc') + .where('include_in_supplementary_billing', 'yes') + .where('region_id', regionId) + .where('chargeVersions.start_date', '>=', billingPeriod.startDate) + .where('chargeVersions.start_date', '<=', billingPeriod.endDate) return chargeVersions } From ccbd853c42e178a957ab2e52a6af2976ba03c202 Mon Sep 17 00:00:00 2001 From: Jason Claxton Date: Tue, 20 Dec 2022 15:26:04 +0000 Subject: [PATCH 03/13] got some joins working --- app/models/charge-version.model.js | 24 +++++++++++++++++++ .../fetch-charge-versions.service.js | 19 +++++++++------ 2 files changed, 36 insertions(+), 7 deletions(-) diff --git a/app/models/charge-version.model.js b/app/models/charge-version.model.js index be3fc0f171..e5cc2b6100 100644 --- a/app/models/charge-version.model.js +++ b/app/models/charge-version.model.js @@ -20,6 +20,30 @@ class ChargeVersionModel extends BaseModel { static get relationMappings () { return { + billingChargeCategory: { + relation: Model.ManyToManyRelation, + modelClass: 'billing-charge-category.model', + join: { + from: 'water.charge_versions.charge_version_id', + through: { + from: 'water.charge_elements.charge_version_id', + to: 'water.charge_elements.billing_charge_category_id' + }, + to: 'water.billing_charge_categories.billing_charge_category_id' + } + }, + chargePurpose: { + relation: Model.ManyToManyRelation, + modelClass: 'charge-purpose.model', + join: { + from: 'water.charge_versions.charge_version_id', + through: { + from: 'water.charge_elements.charge_version_id', + to: 'water.charge_elements.charge_element_id' + }, + to: 'water.charge_purposes.charge_element_id' + } + }, licence: { relation: Model.BelongsToOneRelation, modelClass: 'licence.model', diff --git a/app/services/supplementary-billing/fetch-charge-versions.service.js b/app/services/supplementary-billing/fetch-charge-versions.service.js index f4c7dbe6b0..bb9a023414 100644 --- a/app/services/supplementary-billing/fetch-charge-versions.service.js +++ b/app/services/supplementary-billing/fetch-charge-versions.service.js @@ -27,15 +27,20 @@ async function go (regionId, billingPeriod) { async function _fetch (regionId, billingPeriod) { const chargeVersions = await ChargeVersion.query() + .alias('cv') .select( - 'chargeVersionId', 'scheme', 'chargeVersions.startDate', 'endDate', 'licence.licenceId', 'licence.licenceRef' + 'cv.chargeVersionId', 'cv.scheme', 'cv.startDate', 'cv.endDate', 'lic.licenceId', 'lic.licenceRef', + 'bcc.reference', 'cp.abstractionPeriodStartDay', 'cp.abstractionPeriodStartMonth', 'cp.abstractionPeriodEndDay', + 'cp.abstractionPeriodEndMonth' ) - .innerJoinRelated('licence') - .where('scheme', 'sroc') - .where('include_in_supplementary_billing', 'yes') - .where('region_id', regionId) - .where('chargeVersions.start_date', '>=', billingPeriod.startDate) - .where('chargeVersions.start_date', '<=', billingPeriod.endDate) + .innerJoinRelated('licence as lic') + .innerJoinRelated('billingChargeCategory as bcc') + .innerJoinRelated('chargePurpose as cp') + .where('cv.scheme', 'sroc') + .where('lic.includeInSupplementaryBilling', 'yes') + .where('lic.regionId', regionId) + .where('cv.startDate', '>=', billingPeriod.startDate) + .where('cv.startDate', '<=', billingPeriod.endDate) return chargeVersions } From ee1cd5fb3033b7cc5096ad60555551e04d251cf4 Mon Sep 17 00:00:00 2001 From: Jason Claxton Date: Wed, 21 Dec 2022 11:56:31 +0000 Subject: [PATCH 04/13] built new query WIP --- .../fetch-charge-versions.service.js | 51 ++++++++++++++----- 1 file changed, 37 insertions(+), 14 deletions(-) diff --git a/app/services/supplementary-billing/fetch-charge-versions.service.js b/app/services/supplementary-billing/fetch-charge-versions.service.js index bb9a023414..03d4b2ce0d 100644 --- a/app/services/supplementary-billing/fetch-charge-versions.service.js +++ b/app/services/supplementary-billing/fetch-charge-versions.service.js @@ -27,20 +27,43 @@ async function go (regionId, billingPeriod) { async function _fetch (regionId, billingPeriod) { const chargeVersions = await ChargeVersion.query() - .alias('cv') - .select( - 'cv.chargeVersionId', 'cv.scheme', 'cv.startDate', 'cv.endDate', 'lic.licenceId', 'lic.licenceRef', - 'bcc.reference', 'cp.abstractionPeriodStartDay', 'cp.abstractionPeriodStartMonth', 'cp.abstractionPeriodEndDay', - 'cp.abstractionPeriodEndMonth' - ) - .innerJoinRelated('licence as lic') - .innerJoinRelated('billingChargeCategory as bcc') - .innerJoinRelated('chargePurpose as cp') - .where('cv.scheme', 'sroc') - .where('lic.includeInSupplementaryBilling', 'yes') - .where('lic.regionId', regionId) - .where('cv.startDate', '>=', billingPeriod.startDate) - .where('cv.startDate', '<=', billingPeriod.endDate) + .select('chargeVersionId', 'scheme', 'chargeVersions.startDate', 'chargeVersions.endDate') + .innerJoinRelated('licence') + .where('scheme', 'sroc') + .where('includeInSupplementaryBilling', 'yes') + .where('regionId', regionId) + .where('chargeVersions.startDate', '>=', billingPeriod.startDate) + .where('chargeVersions.startDate', '<=', billingPeriod.endDate) + .withGraphFetched('licence') + .modifyGraph('licence', builder => { + builder.select( + 'licenceId', + 'licenceRef' + ) + }) + .withGraphFetched('chargeElements.chargePurposes') + .modifyGraph('chargeElements', builder => { + builder.select( + 'chargeElementId' + ) + }) + .modifyGraph('chargeElements.chargePurposes', builder => { + builder.select( + 'abstractionPeriodStartDay', + 'abstractionPeriodStartMonth', + 'abstractionPeriodEndDay', + 'abstractionPeriodEndMonth' + ) + }) + .withGraphFetched('chargeElements.billingChargeCategory') + .modifyGraph('chargeElements.billingChargeCategory', builder => { + builder.select( + 'reference' + ) + }) + + console.log(chargeVersions) + console.log(chargeVersions[0].chargeElements[0]) return chargeVersions } From 1763d64eb852713efe5386bd6158c47809a54cff Mon Sep 17 00:00:00 2001 From: Jason Claxton Date: Wed, 21 Dec 2022 15:49:26 +0000 Subject: [PATCH 05/13] amended presenter to use updated query --- .../check/supplementary-data.presenter.js | 11 +---------- .../fetch-charge-versions.service.js | 15 ++++++--------- 2 files changed, 7 insertions(+), 19 deletions(-) diff --git a/app/presenters/check/supplementary-data.presenter.js b/app/presenters/check/supplementary-data.presenter.js index 7cb443a968..ebd7a3bca1 100644 --- a/app/presenters/check/supplementary-data.presenter.js +++ b/app/presenters/check/supplementary-data.presenter.js @@ -12,16 +12,7 @@ function go (data) { licenceRef: licence.licenceRef } }) - const chargeVersions = data.chargeVersions.map((chargeVersion) => { - return { - chargeVersionId: chargeVersion.chargeVersionId, - licenceRef: chargeVersion.licenceRef, - licenceId: chargeVersion.licenceId, - scheme: chargeVersion.scheme, - startDate: chargeVersion.startDate, - endDate: chargeVersion.endDate - } - }) + const chargeVersions = data.chargeVersions return { billingPeriods: data.billingPeriods, diff --git a/app/services/supplementary-billing/fetch-charge-versions.service.js b/app/services/supplementary-billing/fetch-charge-versions.service.js index 03d4b2ce0d..c4ab038f98 100644 --- a/app/services/supplementary-billing/fetch-charge-versions.service.js +++ b/app/services/supplementary-billing/fetch-charge-versions.service.js @@ -41,6 +41,12 @@ async function _fetch (regionId, billingPeriod) { 'licenceRef' ) }) + .withGraphFetched('chargeElements.billingChargeCategory') + .modifyGraph('chargeElements.billingChargeCategory', builder => { + builder.select( + 'reference' + ) + }) .withGraphFetched('chargeElements.chargePurposes') .modifyGraph('chargeElements', builder => { builder.select( @@ -55,15 +61,6 @@ async function _fetch (regionId, billingPeriod) { 'abstractionPeriodEndMonth' ) }) - .withGraphFetched('chargeElements.billingChargeCategory') - .modifyGraph('chargeElements.billingChargeCategory', builder => { - builder.select( - 'reference' - ) - }) - - console.log(chargeVersions) - console.log(chargeVersions[0].chargeElements[0]) return chargeVersions } From 005cd90c4bd4b86ea3d6abc743e560cacc58ef61 Mon Sep 17 00:00:00 2001 From: Jason Claxton Date: Thu, 22 Dec 2022 11:58:12 +0000 Subject: [PATCH 06/13] added chargePurposeId to output from chargePurposes --- .../supplementary-billing/fetch-charge-versions.service.js | 1 + 1 file changed, 1 insertion(+) diff --git a/app/services/supplementary-billing/fetch-charge-versions.service.js b/app/services/supplementary-billing/fetch-charge-versions.service.js index c4ab038f98..eb77c6c364 100644 --- a/app/services/supplementary-billing/fetch-charge-versions.service.js +++ b/app/services/supplementary-billing/fetch-charge-versions.service.js @@ -55,6 +55,7 @@ async function _fetch (regionId, billingPeriod) { }) .modifyGraph('chargeElements.chargePurposes', builder => { builder.select( + 'chargePurposeId', 'abstractionPeriodStartDay', 'abstractionPeriodStartMonth', 'abstractionPeriodEndDay', From 32fe9c56b504777572d47705766ba3f7caed4fea Mon Sep 17 00:00:00 2001 From: Jason Claxton Date: Thu, 22 Dec 2022 13:00:55 +0000 Subject: [PATCH 07/13] updated presenter tests --- .../supplementary-data.presenter.test.js | 51 ++++++++++++------- 1 file changed, 34 insertions(+), 17 deletions(-) diff --git a/test/presenters/check/supplementary-data.presenter.test.js b/test/presenters/check/supplementary-data.presenter.test.js index a61d1c4f32..413e1821bc 100644 --- a/test/presenters/check/supplementary-data.presenter.test.js +++ b/test/presenters/check/supplementary-data.presenter.test.js @@ -17,27 +17,44 @@ describe('Supplementary presenter', () => { beforeEach(() => { data = { billingPeriods: [ - { startDate: new Date(2022, 3, 1), endDate: new Date(2023, 2, 31) } + { + startDate: new Date(2022, 4, 1), + endDate: new Date(2023, 3, 31) + } ], licences: [ - { licenceId: '0000579f-0f8f-4e21-b63a-063384ad32c8', licenceRef: 'AT/SROC/SUPB/01' } + { + licenceId: 'f1288f6c-8503-4dc1-b114-75c408a14bd0', + licenceRef: 'AT/SROC/SUPB/01' + } ], chargeVersions: [ { - chargeVersionId: '4b5cbe04-a0e2-468c-909e-1e2d93810ba8', - scheme: 'sroc', - startDate: new Date('2022-04-01'), - endDate: null, - licenceRef: 'AT/SROC/SUPB/01', - licenceId: '0000579f-0f8f-4e21-b63a-063384ad32c8' - }, - { - chargeVersionId: '732fde85-fd3b-44e8-811f-8e6f4eb8cf6f', + chargeVersionId: '6a472535-145c-4170-ab59-f555783fa6e7', scheme: 'sroc', - startDate: new Date('2022-04-01'), + startDate: new Date(2022, 4, 1), endDate: null, - licenceRef: 'AT/SROC/SUPB/01', - licenceId: '0000579f-0f8f-4e21-b63a-063384ad32c8' + licence: { + licenceId: 'f1288f6c-8503-4dc1-b114-75c408a14bd0', + licenceRef: 'AT/SROC/SUPB/01' + }, + chargeElements: [ + { + chargeElementId: '0382824f-2b17-4294-aa57-c5fe5749960f', + chargePurposes: [ + { + chargePurposeId: 'ffcb7d57-6148-4ee7-bc95-9de23c0cdc39', + abstractionPeriodStartDay: 1, + abstractionPeriodStartMonth: 4, + abstractionPeriodEndDay: 31, + abstractionPeriodEndMonth: 3 + } + ], + billingChargeCategory: { + reference: '4.2.1' + } + } + ] } ] } @@ -51,11 +68,11 @@ describe('Supplementary presenter', () => { expect(result.licences).to.have.length(1) expect(result.licences[0]).to.equal({ - licenceId: data.chargeVersions[0].licenceId, - licenceRef: data.chargeVersions[0].licenceRef + licenceId: data.chargeVersions[0].licence.licenceId, + licenceRef: data.chargeVersions[0].licence.licenceRef }) - expect(result.chargeVersions).to.have.length(2) + expect(result.chargeVersions).to.have.length(1) expect(result.chargeVersions[0]).to.equal(data.chargeVersions[0]) }) }) From 927c731350704c60842844d390187638825f8de1 Mon Sep 17 00:00:00 2001 From: Jason Claxton Date: Thu, 22 Dec 2022 14:52:11 +0000 Subject: [PATCH 08/13] removed redundant relationships --- app/models/charge-version.model.js | 24 ------------------------ 1 file changed, 24 deletions(-) diff --git a/app/models/charge-version.model.js b/app/models/charge-version.model.js index e71625e20f..d7f9307524 100644 --- a/app/models/charge-version.model.js +++ b/app/models/charge-version.model.js @@ -20,30 +20,6 @@ class ChargeVersionModel extends BaseModel { static get relationMappings () { return { - billingChargeCategory: { - relation: Model.ManyToManyRelation, - modelClass: 'billing-charge-category.model', - join: { - from: 'water.charge_versions.charge_version_id', - through: { - from: 'water.charge_elements.charge_version_id', - to: 'water.charge_elements.billing_charge_category_id' - }, - to: 'water.billing_charge_categories.billing_charge_category_id' - } - }, - chargePurpose: { - relation: Model.ManyToManyRelation, - modelClass: 'charge-purpose.model', - join: { - from: 'water.charge_versions.charge_version_id', - through: { - from: 'water.charge_elements.charge_version_id', - to: 'water.charge_elements.charge_element_id' - }, - to: 'water.charge_purposes.charge_element_id' - } - }, licence: { relation: Model.BelongsToOneRelation, modelClass: 'licence.model', From abe50b7d5eb1452d3f46bd5cc74900cded5546af Mon Sep 17 00:00:00 2001 From: Jason Claxton Date: Thu, 22 Dec 2022 15:07:24 +0000 Subject: [PATCH 09/13] fixed typo --- .../supplementary-billing/fetch-charge-versions.service.test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/services/supplementary-billing/fetch-charge-versions.service.test.js b/test/services/supplementary-billing/fetch-charge-versions.service.test.js index b5d7fd6a5f..fad557eb97 100644 --- a/test/services/supplementary-billing/fetch-charge-versions.service.test.js +++ b/test/services/supplementary-billing/fetch-charge-versions.service.test.js @@ -108,7 +108,7 @@ describe('Fetch Charge Versions service', () => { // This creates an SROC charge version with a start date before the billing period. This would have been // picked up by a previous bill run const alcsChargeVersion = await ChargeVersionHelper.add( - { start_date: new Date(2022, 2, 31) }, // 2022-03-01 - Months are zero indexed :-) + { start_date: new Date(2022, 2, 31) }, // 2022-03-31 - Months are zero indexed :-) { include_in_supplementary_billing: 'yes' } ) testRecords = [alcsChargeVersion] From d5d0d54285e4bc7fd3c7aac0cbb3a90b5eae1daf Mon Sep 17 00:00:00 2001 From: Jason Claxton Date: Thu, 22 Dec 2022 15:09:53 +0000 Subject: [PATCH 10/13] fixed dates --- test/presenters/check/supplementary-data.presenter.test.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/presenters/check/supplementary-data.presenter.test.js b/test/presenters/check/supplementary-data.presenter.test.js index 413e1821bc..2dbcf0064a 100644 --- a/test/presenters/check/supplementary-data.presenter.test.js +++ b/test/presenters/check/supplementary-data.presenter.test.js @@ -18,8 +18,8 @@ describe('Supplementary presenter', () => { data = { billingPeriods: [ { - startDate: new Date(2022, 4, 1), - endDate: new Date(2023, 3, 31) + startDate: new Date(2022, 3, 1), // 2022-04-01 - Months are zero indexed + endDate: new Date(2023, 2, 31) } ], licences: [ From 0f0430d6b0e6a84efc3696527c798671c3039e68 Mon Sep 17 00:00:00 2001 From: Jason Claxton Date: Fri, 23 Dec 2022 11:04:46 +0000 Subject: [PATCH 11/13] fixed Alan's dodgy force commit --- test/support/helpers/billing-charge-category.helper.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/support/helpers/billing-charge-category.helper.js b/test/support/helpers/billing-charge-category.helper.js index 048bf769a2..e5c8d54ef2 100644 --- a/test/support/helpers/billing-charge-category.helper.js +++ b/test/support/helpers/billing-charge-category.helper.js @@ -30,7 +30,7 @@ function add (data = {}) { const insertData = defaults(data) return BillingChargeCategoryModel.query() - .insertData({ ...insertData }) + .insert({ ...insertData }) .returning('*') } From 25705d41a399b3a7ce27f999c265556e21dbc767 Mon Sep 17 00:00:00 2001 From: Jason Claxton Date: Fri, 23 Dec 2022 11:05:19 +0000 Subject: [PATCH 12/13] added tests for related objects --- .../fetch-charge-versions.service.test.js | 42 ++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) diff --git a/test/services/supplementary-billing/fetch-charge-versions.service.test.js b/test/services/supplementary-billing/fetch-charge-versions.service.test.js index a4279155a5..26e66615c6 100644 --- a/test/services/supplementary-billing/fetch-charge-versions.service.test.js +++ b/test/services/supplementary-billing/fetch-charge-versions.service.test.js @@ -8,6 +8,9 @@ const { describe, it, beforeEach } = exports.lab = Lab.script() const { expect } = Code // Test helpers +const BillingChargeCategoryHelper = require('../../support/helpers/billing-charge-category.helper.js') +const ChargeElementHelper = require('../../support/helpers/charge-element.helper.js') +const ChargePurposeHelper = require('../../support/helpers/charge-purpose.helper.js') const ChargeVersionHelper = require('../../support/helpers/charge-version.helper.js') const DatabaseHelper = require('../../support/helpers/database.helper.js') const LicenceHelper = require('../../support/helpers/licence.helper.js') @@ -24,7 +27,11 @@ describe('Fetch Charge Versions service', () => { await DatabaseHelper.clean() }) - describe('when there are licences to be included in supplementary billing', () => { + describe.only('when there are licences to be included in supplementary billing', () => { + let billingChargeCategory + let chargeElement + let chargePurpose + beforeEach(async () => { billingPeriod = { startDate: new Date('2022-04-01'), @@ -44,6 +51,17 @@ describe('Fetch Charge Versions service', () => { ) testRecords = [srocChargeVersion, alcsChargeVersion] + + billingChargeCategory = await BillingChargeCategoryHelper.add() + + chargeElement = await ChargeElementHelper.add({ + chargeVersionId: srocChargeVersion.chargeVersionId, + billingChargeCategoryId: billingChargeCategory.billingChargeCategoryId + }) + + chargePurpose = await ChargePurposeHelper.add({ + chargeElementId: chargeElement.chargeElementId + }) }) it('returns only the current SROC charge versions that are applicable', async () => { @@ -52,6 +70,28 @@ describe('Fetch Charge Versions service', () => { expect(result.length).to.equal(1) expect(result[0].chargeVersionId).to.equal(testRecords[0].chargeVersionId) }) + + it('includes related charge elements, billing charge category and charge purposes', async () => { + const result = await FetchChargeVersionsService.go(regionId, billingPeriod) + + const expectedResult = { + chargeElementId: chargeElement.chargeElementId, + billingChargeCategory: { + reference: billingChargeCategory.reference + }, + chargePurposes: [{ + chargePurposeId: chargePurpose.chargePurposeId, + abstractionPeriodStartDay: chargePurpose.abstractionPeriodStartDay, + abstractionPeriodStartMonth: chargePurpose.abstractionPeriodStartMonth, + abstractionPeriodEndDay: chargePurpose.abstractionPeriodEndDay, + abstractionPeriodEndMonth: chargePurpose.abstractionPeriodEndMonth + }] + } + + expect(result.length).to.equal(1) + expect(result[0].chargeVersionId).to.equal(testRecords[0].chargeVersionId) + expect(result[0].chargeElements[0]).to.equal(expectedResult) + }) }) describe('when there are no licences to be included in supplementary billing', () => { From af2bc1c963a70c9b7ba6f8303b779f9480a6c01c Mon Sep 17 00:00:00 2001 From: Jason Claxton Date: Fri, 23 Dec 2022 11:07:29 +0000 Subject: [PATCH 13/13] removed .only DOH! --- .../supplementary-billing/fetch-charge-versions.service.test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/services/supplementary-billing/fetch-charge-versions.service.test.js b/test/services/supplementary-billing/fetch-charge-versions.service.test.js index 26e66615c6..95e48a2238 100644 --- a/test/services/supplementary-billing/fetch-charge-versions.service.test.js +++ b/test/services/supplementary-billing/fetch-charge-versions.service.test.js @@ -27,7 +27,7 @@ describe('Fetch Charge Versions service', () => { await DatabaseHelper.clean() }) - describe.only('when there are licences to be included in supplementary billing', () => { + describe('when there are licences to be included in supplementary billing', () => { let billingChargeCategory let chargeElement let chargePurpose