diff --git a/CommonServer/Services/MonitorService.ts b/CommonServer/Services/MonitorService.ts index e604d4c1c4..c2660337d5 100644 --- a/CommonServer/Services/MonitorService.ts +++ b/CommonServer/Services/MonitorService.ts @@ -16,7 +16,6 @@ import MonitorProbe from 'Model/Models/MonitorProbe'; import MonitorProbeService from './MonitorProbeService'; import MonitorType from 'Common/Types/Monitor/MonitorType'; import Probe from 'Model/Models/Probe'; -import ActiveMonitoringMeteredPlan from '../Types/Billing/MeteredPlan/ActiveMonitoringMeteredPlan'; import { IsBillingEnabled } from '../EnvironmentConfig'; import MonitorOwnerUserService from './MonitorOwnerUserService'; import MonitorOwnerUser from 'Model/Models/MonitorOwnerUser'; @@ -29,6 +28,7 @@ import URL from 'Common/Types/API/URL'; import { JSONObject } from 'Common/Types/JSON'; import SortOrder from 'Common/Types/BaseDatabase/SortOrder'; import DatabaseConfig from '../DatabaseConfig'; +import { ActiveMonitoringMeteredPlan } from '../Types/Billing/MeteredPlan/AllMeteredPlans'; export class Service extends DatabaseService { public constructor(postgresDatabase?: PostgresDatabase) { diff --git a/CommonServer/Tests/Services/BillingService.test.ts b/CommonServer/Tests/Services/BillingService.test.ts index 8ffee8e9a4..5ae9471aaf 100644 --- a/CommonServer/Tests/Services/BillingService.test.ts +++ b/CommonServer/Tests/Services/BillingService.test.ts @@ -33,6 +33,7 @@ import { PaymentMethodsResponse, Subscription, } from '../TestingUtils/Services/Types'; +import { ActiveMonitoringMeteredPlan } from '../../Types/Billing/MeteredPlan/AllMeteredPlans'; describe('BillingService', () => { let billingService: BillingService; @@ -639,20 +640,13 @@ describe('BillingService', () => { const quantity: number = 10; it('should throw if billing is not enabled', async () => { - const subscriptionItem: SubscriptionItem | undefined = - mockSubscription.items.data[0]; - const meteredPlan: MeteredPlan = new MeteredPlan({ - priceId: subscriptionItem?.price?.id || '', - pricePerUnitInUSD: 100, - unitName: 'unit' - }); - + billingService = mockIsBillingEnabled(false); await expect( billingService.addOrUpdateMeteredPricingOnSubscription( mockSubscription.id, - meteredPlan, + ActiveMonitoringMeteredPlan, quantity ) ).rejects.toThrow(Errors.BillingService.BILLING_NOT_ENABLED); @@ -681,7 +675,7 @@ describe('BillingService', () => { await billingService.addOrUpdateMeteredPricingOnSubscription( mockSubscription.id, - meteredPlan, + ActiveMonitoringMeteredPlan, quantity ); @@ -702,11 +696,6 @@ describe('BillingService', () => { it('should successfully update existing metered pricing on a subscription', async () => { const subscriptionItem: SubscriptionItem | undefined = mockSubscription.items.data[0]; - const meteredPlan: MeteredPlan = new MeteredPlan({ - priceId: subscriptionItem?.price?.id || '', - pricePerUnitInUSD: 100, - unitName: 'unit' - }); mockStripe.subscriptions.retrieve = jest .fn() @@ -717,7 +706,7 @@ describe('BillingService', () => { await billingService.addOrUpdateMeteredPricingOnSubscription( mockSubscription.id, - meteredPlan, + ActiveMonitoringMeteredPlan, quantity ); @@ -732,13 +721,8 @@ describe('BillingService', () => { }); it('should handle non-existent subscription', async () => { - const subscriptionItem: SubscriptionItem | undefined = - mockSubscription.items.data[0]; - const meteredPlan: MeteredPlan = new MeteredPlan({ - priceId: subscriptionItem?.price?.id || '', - pricePerUnitInUSD: 100, - unitName: 'unit' - }); + + const subscriptionId: string = 'sub_nonexistent'; mockStripe.subscriptions.retrieve = jest @@ -748,7 +732,7 @@ describe('BillingService', () => { await expect( billingService.addOrUpdateMeteredPricingOnSubscription( subscriptionId, - meteredPlan, + ActiveMonitoringMeteredPlan, quantity ) ).rejects.toThrow(Errors.BillingService.SUBSCRIPTION_NOT_FOUND); diff --git a/CommonServer/Types/Billing/MeteredPlan/AllMeteredPlans.ts b/CommonServer/Types/Billing/MeteredPlan/AllMeteredPlans.ts index cb06b5877e..788ca4ab7d 100644 --- a/CommonServer/Types/Billing/MeteredPlan/AllMeteredPlans.ts +++ b/CommonServer/Types/Billing/MeteredPlan/AllMeteredPlans.ts @@ -1,13 +1,18 @@ -import ActiveMonitoringMeteredPlan from './ActiveMonitoringMeteredPlan'; +import ActiveMonitoringMeteredPlanType from './ActiveMonitoringMeteredPlan'; import ServerMeteredPlan from './ServerMeteredPlan'; -import TelemetryMeteredPlan from './TelemetryMeteredPlan'; +import TelemetryMeteredPlanType from './TelemetryMeteredPlan'; import { ProductType } from 'Model/Models/UsageBilling'; +export const ActiveMonitoringMeteredPlan:ActiveMonitoringMeteredPlanType = new ActiveMonitoringMeteredPlanType(); +export const LogDataIngestMeteredPlan:TelemetryMeteredPlanType = new TelemetryMeteredPlanType(ProductType.Logs); +export const MetricsDataIngestMeteredPlan: TelemetryMeteredPlanType = new TelemetryMeteredPlanType(ProductType.Metrics); +export const TracesDataIngestMetredPlan: TelemetryMeteredPlanType = new TelemetryMeteredPlanType(ProductType.Traces); + const AllMeteredPlans: Array = [ - new ActiveMonitoringMeteredPlan(), - new TelemetryMeteredPlan(ProductType.Logs), - new TelemetryMeteredPlan(ProductType.Metrics), - new TelemetryMeteredPlan(ProductType.Traces), + ActiveMonitoringMeteredPlan, + LogDataIngestMeteredPlan, + MetricsDataIngestMeteredPlan, + TracesDataIngestMetredPlan ]; export default AllMeteredPlans; diff --git a/CommonServer/Types/Billing/MeteredPlan/ServerMeteredPlan.ts b/CommonServer/Types/Billing/MeteredPlan/ServerMeteredPlan.ts index c6e379d14d..666d5f6cce 100644 --- a/CommonServer/Types/Billing/MeteredPlan/ServerMeteredPlan.ts +++ b/CommonServer/Types/Billing/MeteredPlan/ServerMeteredPlan.ts @@ -9,7 +9,7 @@ export default class ServerMeteredPlan { throw new NotImplementedException(); } - public getMeteredPlan(projectId: ObjectID): MeteredPlan { + public getMeteredPlan(_projectId: ObjectID): MeteredPlan { throw new NotImplementedException(); }