Skip to content

[$250] [Due for payment 2025-05-14] Improve structure and readability of OptionsListUtilsTest.ts #60955

Description

@JKobrynski

Discussed in Slack here (open-source-channel)

Problem

OptionsListUtilsTest.ts is a core test file that many engineers interact with. When adding or updating test cases, clarity and structure can significantly reduce the time required for understanding, debugging, and maintenance. Today, the file lacks an intuitive structure, and test logic is often embedded in large, dense blocks.

When multiple test cases are grouped into large it blocks without a consistent organizational pattern, it causes confusion and makes it difficult to identify and fix failing tests, which prevents us from maintaining a fast and reliable development cycle.

Solution

Refactor the test file to use smaller, more focused it blocks, each testing a single scenario with a descriptive name. Modernize the syntax for consistency, and reorganize the test cases to follow a clearer structure. Additionally, adopt the Given, When, and Then commenting format — as outlined in our project’s documentation — to clearly communicate the intent behind each step and provide valuable context for future engineers. These changes will reduce cognitive load, speed up debugging, and make it easier to expand the test suite in the future.

Example

https://gist.github.com/JKobrynski/ff4e3f6f45953ae92dc5eb6ac252b8e3
https://gist.github.com/JKobrynski/6b9c0a716f80ed2f9f66e566df5a320b

Upwork Automation - Do Not Edit
  • Upwork Job URL: https://www.upwork.com/jobs/~021922370267162079118
  • Upwork Job ID: 1922370267162079118
  • Last Price Increase: 2025-05-13
Issue OwnerCurrent Issue Owner: @
Issue OwnerCurrent Issue Owner: @trjExpensify

Metadata

Metadata

Labels

Awaiting PaymentAuto-added when associated PR is deployed to productionBugSomething is broken. Auto assigns a BugZero manager.DailyKSv2ExternalAdded to denote the issue can be worked on by a contributor

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions