Skip to content
This repository has been archived by the owner on May 19, 2023. It is now read-only.

Commit

Permalink
fix(storage): calculates availableCapacity ignorin
Browse files Browse the repository at this point in the history
- ...g inactive agreements (#481)

* fix(storage): calculates availableCapacity ignoring inactive agreements

* test: adds test for available capacity of offer with inactive agreement
  • Loading branch information
itofarina authored and jurajpiar committed Jan 9, 2021
1 parent bae17f0 commit 3183e05
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 7 deletions.
5 changes: 4 additions & 1 deletion src/services/storage/models/offer.model.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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
)
`)
Expand Down
6 changes: 5 additions & 1 deletion src/services/storage/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
8 changes: 3 additions & 5 deletions test/unit/services/storage/models.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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()
Expand Down
1 change: 1 addition & 0 deletions test/unit/services/storage/services.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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' }
])

Expand Down

0 comments on commit 3183e05

Please sign in to comment.