test: Add unit test for projects/app/src/web/support/marketing/utils.ts #5197
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.
Trigger Info
Summary
This PR introduces comprehensive unit tests for the
marketing/utils
module, ensuring robust validation of its functionality. The tests cover the following utility functions:inviterId
:Validates
getInviterId
,setInviterId
, andremoveInviterId
operations.Ensures empty values are not set.
bdVId
:Tests
getBdVId
andsetBdVId
functionality.Prevents setting empty values.
msclkid
:Verifies
getMsclkid
andsetMsclkid
behavior.Ensures empty values are not set.
utmWorkflow
:Covers
getUtmWorkflow
,setUtmWorkflow
, andremoveUtmWorkflow
.Prevents setting empty values.
utmParams
:Validates
getUtmParams
,setUtmParams
, andremoveUtmParams
.Handles invalid JSON gracefully.
Ensures empty or undefined values are not set.
fastGPTSem
:Tests
getFastGPTSem
,setFastGPTSem
, andremoveFastGPTSem
.Handles invalid JSON inputs.
Prevents setting empty values.
sourceDomain
:Validates
getSourceDomain
andsetSourceDomain
.Ensures existing values are not overridden.
Uses
document.referrer
as a fallback when no value is provided.Mock implementations for
localStorage
,sessionStorage
, anddocument.referrer
are used to simulate browser behavior, ensuring isolated and reliable testing. The tests also include edge cases, such as handling invalid JSON and preventing unnecessary storage operations for empty or undefined values.Coverage
The change in coverage value, such as:
0% -> 50%
, indicates that the coverage was 0% before writing the tests and 50% after writing them.https://web.dev/articles/ta-code-coverage
Test Statuses
Tip
You can
@gru-agent
and leave your feedback. TestGru will make adjustments based on your inputTip
You can
@gru-agent rebase
to rebase the PR.Tip
You can
@gru-agent redo
to reset or rebase before redoing the PR.Tip
To modify the test code yourself, click here Edit Test Code