[PM 30576]Make Invoice Response currency culture invariant #6812
+4
โ3
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.

๐๏ธ Tracking
https://bitwarden.atlassian.net/browse/PM-30576
๐ Objective
The
FormatForProvidermethod inInvoiceExtensionswas using culture-aware decimal formatting ({pricePerItem:F2}and{taxAmount:F2}), which caused test failures on machines with non-US locales. On systems with comma decimal separators (e.g., European locales), the formatting would produce"$8,00"instead of the expected"$8.00", causing theFormatForProvider_ComplexScenario_HandlesAllLineTypestest to fail.Example failure:
Solution
Updated the currency formatting to use
CultureInfo.InvariantCulturewhen formatting decimal values, ensuring consistent output regardless of system locale:Line 55: Changed tax line item price formatting from
$"(at ${pricePerItem:F2} / month)"tostring.Format(CultureInfo.InvariantCulture, "(at ${0:F2} / month)", pricePerItem)Line 74: Changed invoice-level tax formatting from
$"1 ร Tax (at ${taxAmount:F2} / month)"tostring.Format(CultureInfo.InvariantCulture, "1 ร Tax (at ${0:F2} / month)", taxAmount)Added import: Added
using System.Globalization;to supportCultureInfo.InvariantCultureImpact
.) as decimal separator, which is correct for USD formatting"$8.00")Testing
FormatForProvider_ComplexScenario_HandlesAllLineTypesRelated
This addresses the issue where PR #6622 attempted to fix the test by setting thread culture, but the root cause was in the implementation using culture-aware formatting. This fix addresses the root cause in the implementation itself.
๐ธ Screenshots
โฐ Reminders before review
๐ฆฎ Reviewer guidelines
:+1:) or similar for great changes:memo:) or โน๏ธ (:information_source:) for notes or general info:question:) for questions:thinking:) or ๐ญ (:thought_balloon:) for more open inquiry that's not quite a confirmed issue and could potentially benefit from discussion:art:) for suggestions / improvements:x:) or:warning:) for more significant problems or concerns needing attention:seedling:) or โป๏ธ (:recycle:) for future improvements or indications of technical debt:pick:) for minor or nitpick changes