Skip to content

Commit f0b7ca4

Browse files
committed
move test, cleanup
1 parent 8852123 commit f0b7ca4

File tree

3 files changed

+80
-71
lines changed

3 files changed

+80
-71
lines changed

packages/next-intl/src/extractor/ExtractionCompiler.test.tsx

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1103,6 +1103,83 @@ msgstr "Hallo!"
11031103
`);
11041104
});
11051105

1106+
it('sorts messages by reference path when files are compiled out of order', async () => {
1107+
using compiler = createCompiler();
1108+
1109+
await compiler.compile(
1110+
'/project/src/a.tsx',
1111+
`
1112+
import {useExtracted} from 'next-intl';
1113+
export default function A() {
1114+
const t = useExtracted();
1115+
return <div>{t('Message A')}</div>;
1116+
}
1117+
`
1118+
);
1119+
1120+
await compiler.compile(
1121+
'/project/src/d.tsx',
1122+
`
1123+
import {useExtracted} from 'next-intl';
1124+
export default function D() {
1125+
const t = useExtracted();
1126+
return <div>{t('Message B')}</div>;
1127+
}
1128+
`
1129+
);
1130+
1131+
await compiler.compile(
1132+
'/project/src/c.tsx',
1133+
`
1134+
import {useExtracted} from 'next-intl';
1135+
export default function C() {
1136+
const t = useExtracted();
1137+
return <div>{t('Message C')}</div>;
1138+
}
1139+
`
1140+
);
1141+
1142+
await compiler.compile(
1143+
'/project/src/b.tsx',
1144+
`
1145+
import {useExtracted} from 'next-intl';
1146+
export default function B() {
1147+
const t = useExtracted();
1148+
return <div>{t('Message B')}</div>;
1149+
}
1150+
`
1151+
);
1152+
1153+
await waitForWriteFileCalls(5);
1154+
1155+
expect(vi.mocked(fs.writeFile).mock.calls.at(-1)).toMatchInlineSnapshot(`
1156+
[
1157+
"messages/en.po",
1158+
"msgid ""
1159+
msgstr ""
1160+
"Language: en\\n"
1161+
"Content-Type: text/plain; charset=utf-8\\n"
1162+
"Content-Transfer-Encoding: 8bit\\n"
1163+
"X-Generator: next-intl\\n"
1164+
"X-Crowdin-SourceKey: msgstr\\n"
1165+
1166+
#: src/a.tsx
1167+
msgid "PmvAXH"
1168+
msgstr "Message A"
1169+
1170+
#: src/b.tsx
1171+
#: src/d.tsx
1172+
msgid "5bb321"
1173+
msgstr "Message B"
1174+
1175+
#: src/c.tsx
1176+
msgid "c3UbA2"
1177+
msgstr "Message C"
1178+
",
1179+
]
1180+
`);
1181+
});
1182+
11061183
it('initializes all messages to empty string when adding new catalog', async () => {
11071184
filesystem.project.messages = undefined;
11081185
filesystem.project.src['Greeting.tsx'] = `

packages/next-intl/src/extractor/catalog/CatalogManager.test.tsx

Lines changed: 0 additions & 64 deletions
This file was deleted.

packages/next-intl/src/extractor/catalog/CatalogManager.tsx

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -202,13 +202,9 @@ export default class CatalogManager {
202202
// reference, which is the current file. We need to merge this with
203203
// potentially existing references.
204204
const references = [...(prevMessage.references ?? [])];
205-
message.references.forEach((reference) => {
206-
if (
207-
!references.some(
208-
(existingReference) => existingReference.path === reference.path
209-
)
210-
) {
211-
references.push(reference);
205+
message.references.forEach((ref) => {
206+
if (!references.some((cur) => cur.path === ref.path)) {
207+
references.push(ref);
212208
}
213209
});
214210
references.sort((referenceA, referenceB) =>

0 commit comments

Comments
 (0)