@@ -16,6 +16,12 @@ describe("isFalVagueBillingSummary", () => {
1616 expect ( isFalVagueBillingSummary ( { billing_unit : "Units" } ) ) . toBe ( true ) ;
1717 } ) ;
1818
19+ it ( 'returns true for "credit" and "credits"' , ( ) => {
20+ expect ( isFalVagueBillingSummary ( { billing_unit : "credit" } ) ) . toBe ( true ) ;
21+ expect ( isFalVagueBillingSummary ( { billing_unit : "credits" } ) ) . toBe ( true ) ;
22+ expect ( isFalVagueBillingSummary ( { billing_unit : "Credits" } ) ) . toBe ( true ) ;
23+ } ) ;
24+
1925 it ( "returns false for specific billing units" , ( ) => {
2026 expect ( isFalVagueBillingSummary ( { billing_unit : "image" } ) ) . toBe ( false ) ;
2127 expect ( isFalVagueBillingSummary ( { billing_unit : "second" } ) ) . toBe ( false ) ;
@@ -24,6 +30,7 @@ describe("isFalVagueBillingSummary", () => {
2430
2531 it ( "handles whitespace-padded values" , ( ) => {
2632 expect ( isFalVagueBillingSummary ( { billing_unit : " units " } ) ) . toBe ( true ) ;
33+ expect ( isFalVagueBillingSummary ( { billing_unit : " credits " } ) ) . toBe ( true ) ;
2734 } ) ;
2835} ) ;
2936
@@ -60,6 +67,26 @@ describe("formatFalUnitPricingShort", () => {
6067 const result = formatFalUnitPricingShort ( p ) ;
6168 expect ( result ) . toContain ( "0.00" ) ;
6269 } ) ;
70+
71+ it ( 'returns "pricing varies" for vague billing units' , ( ) => {
72+ const p = {
73+ unit_price : 1 ,
74+ currency : "USD" ,
75+ billing_unit : "units" ,
76+ endpoint_id : "openai/gpt-image-2" ,
77+ } as FalUnitPricing ;
78+ expect ( formatFalUnitPricingShort ( p ) ) . toBe ( "pricing varies" ) ;
79+ } ) ;
80+
81+ it ( 'returns "pricing varies" for credits billing' , ( ) => {
82+ const p = {
83+ unit_price : 1 ,
84+ currency : "USD" ,
85+ billing_unit : "credits" ,
86+ endpoint_id : "fal-ai/gpt-image-1-mini" ,
87+ } as FalUnitPricing ;
88+ expect ( formatFalUnitPricingShort ( p ) ) . toBe ( "pricing varies" ) ;
89+ } ) ;
6390} ) ;
6491
6592describe ( "formatFalUnitPricingTooltip" , ( ) => {
0 commit comments