Skip to content

Commit c9fb9d0

Browse files
committed
feat(tiered_pricing): 🔵 add tiers dependency in GraduatedTieredPricing
1 parent 6d25736 commit c9fb9d0

File tree

2 files changed

+6
-4
lines changed

2 files changed

+6
-4
lines changed

exercises/graduated_tiered_prices/solutions/adrianliz/src/GraduatedTieredPricing.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@ import GraduatedTier from "./GraduatedTier";
22
import Subscriptions from "./Subscriptions";
33

44
export default class GraduatedTieredPricing {
5-
private tiers(): GraduatedTier[] {
5+
constructor(private readonly tiers: GraduatedTier[] | null) {}
6+
7+
private defaultTiers(): GraduatedTier[] {
68
return [
79
new GraduatedTier(1, 2, 299),
810
new GraduatedTier(3, 10, 239),
@@ -13,6 +15,6 @@ export default class GraduatedTieredPricing {
1315
}
1416

1517
priceFor(subscriptions: Subscriptions): number {
16-
return subscriptions.priceFor(this.tiers());
18+
return subscriptions.priceFor(this.tiers || this.defaultTiers());
1719
}
1820
}

exercises/graduated_tiered_prices/solutions/adrianliz/tests/GraduatedTieredPricing.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import Subscriptions from "../src/Subscriptions";
66

77
describe("Graduated tiered pricing should", () => {
88
it("throw number of subscriptions not allowed for 0 subscriptions", () => {
9-
const pricing = new GraduatedTieredPricing();
9+
const pricing = new GraduatedTieredPricing(null);
1010
expect(() => pricing.priceFor(new Subscriptions(0))).toThrow(
1111
NumberOfSubscriptionsNotAllowed
1212
);
@@ -23,7 +23,7 @@ describe("Graduated tiered pricing should", () => {
2323
]).it(
2424
"calculate the price for %i subscriptions",
2525
(subscriptions: number, expectedPrice: number) => {
26-
const pricing = new GraduatedTieredPricing();
26+
const pricing = new GraduatedTieredPricing(null);
2727
expect(pricing.priceFor(new Subscriptions(subscriptions))).toBe(
2828
expectedPrice
2929
);

0 commit comments

Comments
 (0)