Skip to content

Commit e84de76

Browse files
authored
fix: orderByMessage should also order by context (#2337)
1 parent 0819886 commit e84de76

File tree

2 files changed

+19
-2
lines changed

2 files changed

+19
-2
lines changed

packages/cli/src/api/catalog.test.ts

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -617,7 +617,7 @@ describe("order", () => {
617617
expect(Object.keys(orderedCatalogs)).toMatchSnapshot()
618618
})
619619

620-
it("should order messages by message", () => {
620+
it("should order messages by message and then by context", () => {
621621
const catalog = {
622622
msg1: makeNextMessage({
623623
message: "B",
@@ -630,6 +630,7 @@ describe("order", () => {
630630
msg2: makeNextMessage({
631631
// message is optional.
632632
translation: "A",
633+
context: "context1",
633634
origin: [["file2.js", 3]],
634635
}),
635636
msg3: makeNextMessage({
@@ -642,6 +643,18 @@ describe("order", () => {
642643
translation: "C",
643644
origin: [["file1.js", 1]],
644645
}),
646+
msg5: makeNextMessage({
647+
message: "B",
648+
translation: "B",
649+
context: "context3",
650+
origin: [["file2.js", 4]],
651+
}),
652+
msg6: makeNextMessage({
653+
message: "B",
654+
translation: "B",
655+
context: "context2",
656+
origin: [["file2.js", 5]],
657+
}),
645658
}
646659

647660
const orderedCatalogs = order("message", catalog)
@@ -651,6 +664,8 @@ describe("order", () => {
651664
[
652665
msg2,
653666
msg1,
667+
msg6,
668+
msg5,
654669
msg4,
655670
msg3,
656671
]

packages/cli/src/api/catalog.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -376,7 +376,9 @@ export function orderByMessage<T extends ExtractedCatalogType>(messages: T): T {
376376
.sort((a, b) => {
377377
const aMsg = messages[a].message || ""
378378
const bMsg = messages[b].message || ""
379-
return collator.compare(aMsg, bMsg)
379+
const aCtxt = messages[a].context || ""
380+
const bCtxt = messages[b].context || ""
381+
return collator.compare(aMsg, bMsg) || collator.compare(aCtxt, bCtxt)
380382
})
381383
.reduce((acc, key) => {
382384
;(acc as any)[key] = messages[key]

0 commit comments

Comments
 (0)