Test operation merge logic exhaustively
Testing + Tooling Drills · Unit + Integration Tests
Cover local-only pending, backend-only records, duplicate tx hashes, stale entries, and final reconciliation.
Prompt
Test operation merge logic exhaustively
This is a hands-on rep. Attempt the drill before reading the model answer, then narrate the tradeoffs as if an interviewer is watching.
This is a better interview signal than shallow component snapshots.
What to ground before answering
Cover local-only pending, backend-only records, duplicate tx hashes, stale entries, and final reconciliation.
Focus vocabulary: Vitest, merge logic, edge cases.
The useful mental model is not to memorize a perfect answer. It is to explain what owns the data, what can fail, what the user sees, and what test would prove the behavior.
Choose high-value merge test cases
Make the behavior executable before comparing against the model answer.
type MergeRisk = 'local-only' | 'backend-only' | 'duplicate-tx' | 'stale-local' | 'reconciled';
function mergeTestCaseNames(risks: MergeRisk[]): string[] {
// TODO: return stable, human-readable test names for each merge risk.
return [];
}Interview explanation prompt
- What problem is this practice item really testing?
- What state or contract boundary must be explicit?
- What edge case would cause a production regression?
- What would you test first?
- How would you explain the tradeoff in two minutes?
Self-grade
- Strong answer handles the edge cases before polishing syntax.
- Strong answer explains why the chosen type or function boundary prevents bugs.
- Weak answer passes only the happy path or hides uncertainty in booleans and nullable fields.
Model Answer
function mergeTestCaseNames(risks: MergeRisk[]): string[] {
const names: Record<MergeRisk, string> = {
'local-only': 'keeps local pending operation visible',
'backend-only': 'shows backend transfer without local record',
'duplicate-tx': 'deduplicates local and backend records by tx hash',
'stale-local': 'expires stale local pending operation',
reconciled: 'clears local pending after reconciliation',
};
return risks.map((risk) => names[risk]);
}
Recall before moving on
- What is the one-sentence answer for "Test operation merge logic exhaustively"?
- Which real experience from PR TIMES, React/TypeScript migration, or systems work supports it?
- What edge case would you volunteer before the interviewer asks?
- What is the smallest test or artifact that proves the design works?