@@ -94,17 +94,17 @@ describe("ImdiGenerator multilingual vocabulary export", () => {
9494
9595 // English should be present
9696 xexpect (
97- "//Session/MDGroup/Content/Genre[@LanguageId='ISO639-1:en ']"
97+ "//Session/MDGroup/Content/Genre[@LanguageId='ISO639-3:eng ']"
9898 ) . toHaveText ( "Narrative" ) ;
9999
100100 // Spanish should be present (from genres.csv)
101101 xexpect (
102- "//Session/MDGroup/Content/Genre[@LanguageId='ISO639-1:es ']"
102+ "//Session/MDGroup/Content/Genre[@LanguageId='ISO639-3:spa ']"
103103 ) . toHaveText ( "Narrativa" ) ;
104104
105105 // Portuguese should be present (from genres.csv - pt-BR column)
106106 xexpect (
107- "//Session/MDGroup/Content/Genre[@LanguageId='ISO639-1:pt ']"
107+ "//Session/MDGroup/Content/Genre[@LanguageId='ISO639-3:por ']"
108108 ) . toHaveText ( "Narrativa" ) ;
109109
110110 // All should have the correct vocabulary link and type
@@ -135,7 +135,7 @@ describe("ImdiGenerator multilingual vocabulary export", () => {
135135
136136 // Check English - should be sentence case
137137 xexpect (
138- "//Session/MDGroup/Content/SubGenre[@LanguageId='ISO639-1:en ']"
138+ "//Session/MDGroup/Content/SubGenre[@LanguageId='ISO639-3:eng ']"
139139 ) . toHaveText ( "Myth" ) ;
140140 } ) ;
141141
@@ -162,12 +162,12 @@ describe("ImdiGenerator multilingual vocabulary export", () => {
162162
163163 // English should have "Speaker" (sentence case)
164164 xexpect (
165- "//Session/MDGroup/Actors/Actor/Role[@LanguageId='ISO639-1:en ']"
165+ "//Session/MDGroup/Actors/Actor/Role[@LanguageId='ISO639-3:eng ']"
166166 ) . toHaveText ( "Speaker" ) ;
167167
168168 // Spanish should have the translation
169169 xexpect (
170- "//Session/MDGroup/Actors/Actor/Role[@LanguageId='ISO639-1:es ']"
170+ "//Session/MDGroup/Actors/Actor/Role[@LanguageId='ISO639-3:spa ']"
171171 ) . toHaveText ( "Hablante" ) ;
172172
173173 // All Role elements should have vocabulary attributes
@@ -223,9 +223,9 @@ describe("ImdiGenerator multilingual vocabulary export", () => {
223223 ) ;
224224 setResultXml ( imdi ) ;
225225
226- // Should have English (2-letter code uses ISO639-1 )
226+ // Should have English (using ISO639-3 code )
227227 xexpect (
228- "//Session/MDGroup/Content/Genre[@LanguageId='ISO639-1:en ']"
228+ "//Session/MDGroup/Content/Genre[@LanguageId='ISO639-3:eng ']"
229229 ) . toHaveText ( "Narrative" ) ;
230230
231231 // Should NOT have Tok Pisin since there's no translation
@@ -431,7 +431,7 @@ describe("ImdiGenerator ELAR schema multilingual vocabulary export", () => {
431431
432432 // English should be present
433433 xexpect (
434- "//Session/MDGroup/Content/Genre[@LanguageId='ISO639-1:en ']"
434+ "//Session/MDGroup/Content/Genre[@LanguageId='ISO639-3:eng ']"
435435 ) . toHaveText ( "Narrative" ) ;
436436 } ) ;
437437
@@ -451,16 +451,16 @@ describe("ImdiGenerator ELAR schema multilingual vocabulary export", () => {
451451 ) ;
452452 expect ( metadataLangCount ) . toBe ( 3 ) ;
453453
454- // Check the format: "ISO639-1:en: English" or "ISO639-3:xxx: Name "
454+ // Check the format: "ISO639-3:eng: English "
455455 const keys = select ( "//Session/MDGroup/Keys/Key[@Name='MetadataLanguage']" ) ;
456456 const values = keys . map ( ( node ) => ( node as Element ) . textContent ) ;
457457
458- // English - 2-letter code gets ISO639-1
459- expect ( values ) . toContain ( "ISO639-1:en : English" ) ;
460- // Spanish - 2-letter code gets ISO639-1
461- expect ( values ) . toContain ( "ISO639-1:es : Spanish" ) ;
462- // Portuguese - 2-letter code gets ISO639-1
463- expect ( values ) . toContain ( "ISO639-1:pt : Portuguese" ) ;
458+ // English - always use ISO639-3
459+ expect ( values ) . toContain ( "ISO639-3:eng : English" ) ;
460+ // Spanish - always use ISO639-3
461+ expect ( values ) . toContain ( "ISO639-3:spa : Spanish" ) ;
462+ // Portuguese - always use ISO639-3
463+ expect ( values ) . toContain ( "ISO639-3:por : Portuguese" ) ;
464464 } ) ;
465465
466466 it ( "should not output MetadataLanguage keys when only default language is set" , ( ) => {
0 commit comments