diff --git a/src/services/storage/models/offer.model.ts b/src/services/storage/models/offer.model.ts index d07c72c9..0d3ea84f 100644 --- a/src/services/storage/models/offer.model.ts +++ b/src/services/storage/models/offer.model.ts @@ -123,7 +123,10 @@ export function getAvailableCapacityQuery (): Literal { FROM "storage_agreement" WHERE - "storage_agreement"."offerId" = provider) + "storage_agreement"."offerId" = provider + AND + "storage_agreement"."isActive" + ) , 0) as STRING ) `) diff --git a/src/services/storage/utils.ts b/src/services/storage/utils.ts index 0f39ded5..62269001 100644 --- a/src/services/storage/utils.ts +++ b/src/services/storage/utils.ts @@ -60,7 +60,11 @@ export function getMinMaxAvailableCapacityQuery (minMax: MinMax): string { FROM "storage_offer" LEFT OUTER JOIN - "storage_agreement" as "storage_agreement" ON "storage_offer"."provider" = "storage_agreement"."offerId" + "storage_agreement" as "storage_agreement" ON ( + "storage_offer"."provider" = "storage_agreement"."offerId" + AND + "storage_agreement".isActive + ) GROUP BY provider ORDER BY availableCapacity ${minMax === 1 ? 'DESC' : 'ASC'} LIMIT 1 diff --git a/test/unit/services/storage/models.spec.ts b/test/unit/services/storage/models.spec.ts index e2336917..d648e8af 100644 --- a/test/unit/services/storage/models.spec.ts +++ b/test/unit/services/storage/models.spec.ts @@ -13,9 +13,6 @@ import Offer, { import StakeModel from '../../../../src/services/storage/models/stake.model' import BillingPlan from '../../../../src/services/storage/models/billing-plan.model' import Rate from '../../../../src/rates/rates.model' -import { - AvailableCapacityService -} from '../../../../src/services/storage/services' chai.use(sinonChai) const expect = chai.expect @@ -344,10 +341,11 @@ describe('Models', () => { ]) await Agreement.bulkCreate([ { agreementReference: '123', size: 10, offerId: 'provider1' }, - { agreementReference: '1234', size: 10, offerId: 'provider1' } + { agreementReference: '1234', size: 10, offerId: 'provider1' }, + { agreementReference: '12345', size: 10, offerId: 'provider1', isActive: false } ]) - expect((await Agreement.findAll()).length).to.be.eql(2) + expect((await Agreement.findAll()).length).to.be.eql(3) // Prepare aggregation query const aggregateAvailableCapacityQuery = getAvailableCapacityQuery() diff --git a/test/unit/services/storage/services.spec.ts b/test/unit/services/storage/services.spec.ts index 4686b408..f8d2785d 100644 --- a/test/unit/services/storage/services.spec.ts +++ b/test/unit/services/storage/services.spec.ts @@ -27,6 +27,7 @@ describe('Services', () => { await Agreement.bulkCreate([ { agreementReference: '11', size: '1024', offerId: 'provider1' }, { agreementReference: '12', size: '1024', offerId: 'provider1' }, + { agreementReference: '13', size: '1024', offerId: 'provider1', isActive: false }, { agreementReference: '31', size: '1024', offerId: 'provider3' } ])