@@ -6,7 +6,6 @@ import { CONFIGURATION } from "../configuration.js"
66import { getSetting } from "../utilities/settings/index.js"
77import { state } from "../utilities/state.js"
88import { upsertBundleNested } from "@inlang/sdk"
9- import { capture } from "../services/telemetry/index.js"
109
1110// Mocking the necessary modules
1211vi . mock ( "../utilities/state" , ( ) => ( {
@@ -60,12 +59,18 @@ vi.mock("../utilities/settings/index.js", () => ({
6059} ) )
6160
6261vi . mock ( "@inlang/sdk" , ( ) => ( {
63- humanId : vi . fn ( ) . mockReturnValue ( "generatedId123" ) ,
64- createBundle : vi . fn ( ) . mockReturnValue ( { id : "generatedId123" , alias : "alias123" } ) ,
65- createMessage : vi . fn ( ) . mockReturnValue ( { id : "messageId123" , bundleId : "generatedId123" } ) ,
62+ humanId : vi . fn ( ) . mockReturnValue ( "generated_human_id" ) ,
63+ createBundle : vi . fn ( ) . mockReturnValue ( { id : "bundleId123" , alias : "alias123" } ) ,
64+ createMessage : vi
65+ . fn ( )
66+ . mockReturnValue ( { id : "messageId123" , bundleId : "bundleId123bundleId123" } ) ,
6667 upsertBundleNested : vi . fn ( ) ,
6768} ) )
6869
70+ vi . mock ( "nanoid" , ( ) => ( {
71+ customAlphabet : vi . fn ( ) . mockReturnValue ( ( ) => "nanoidnano" ) ,
72+ } ) )
73+
6974vi . mock ( "../utilities/messages/isQuoted" , ( ) => ( {
7075 isQuoted : vi . fn ( ) ,
7176 stripQuotes : vi . fn ( ) ,
@@ -503,4 +508,87 @@ describe("extractMessageCommand", () => {
503508 expect ( CONFIGURATION . EVENTS . ON_DID_EXTRACT_MESSAGE . fire ) . toHaveBeenCalled ( )
504509 expect ( msg ) . toHaveBeenCalledWith ( "Message extracted." )
505510 } )
511+
512+ it ( "should use the right generator if configured" , async ( ) => {
513+ vi . mocked ( state ) . mockReturnValue ( {
514+ project : {
515+ plugins : {
516+ get : async ( ) => [
517+ {
518+ key : "plugin1" ,
519+ meta : {
520+ "app.inlang.ideExtension" : {
521+ extractMessageOptions : [
522+ {
523+ callback : vi . fn ( ( ) => ( {
524+ bundleId : "generatedId123" ,
525+ messageReplacement : "Replacement Text" ,
526+ } ) ) ,
527+ } ,
528+ ] ,
529+ } ,
530+ } ,
531+ } ,
532+ ] ,
533+ } ,
534+ // @ts -expect-error
535+ settings : {
536+ get : async ( ) => ( { baseLocale : "en" , locales : [ "en" ] } ) ,
537+ } ,
538+ db : {
539+ // @ts -expect-error
540+ transaction : ( ) => ( {
541+ execute : vi . fn ( ) . mockResolvedValueOnce ( true ) ,
542+ } ) ,
543+ } ,
544+ } ,
545+ } )
546+
547+ const mockTextEditor = {
548+ selection : {
549+ isEmpty : false ,
550+ start : {
551+ line : 1 ,
552+ character : 1 ,
553+ } ,
554+ end : {
555+ line : 1 ,
556+ character : 20 ,
557+ } ,
558+ } ,
559+ document : {
560+ getText : ( ) => "Some text" ,
561+ } ,
562+ edit : vi . fn ( ) ,
563+ }
564+
565+ for ( const [ generator , expected ] of [
566+ [ "humanId" , "generated_human_id" ] ,
567+ [ "nanoid" , "nanoidnano" ] ,
568+ [ "none" , "" ] ,
569+ ] ) {
570+ vi . mocked ( getSetting ) . mockResolvedValue ( generator )
571+ vi . mocked ( window . showInputBox ) . mockResolvedValueOnce ( "generatedId123" )
572+ // @ts -expect-error
573+ vi . mocked ( window . showQuickPick ) . mockResolvedValueOnce ( "Replacement Text" )
574+
575+ // @ts -expect-error
576+ await extractMessageCommand . callback ( mockTextEditor )
577+
578+ expect ( window . showInputBox ) . toHaveBeenCalledWith (
579+ expect . objectContaining ( {
580+ value : expected ,
581+ } )
582+ )
583+
584+ expect ( mockTextEditor . edit ) . toHaveBeenCalled ( )
585+ expect ( CONFIGURATION . EVENTS . ON_DID_EXTRACT_MESSAGE . fire ) . toHaveBeenCalled ( )
586+ expect ( msg ) . toHaveBeenCalledWith ( "Message extracted." )
587+
588+ vi . mocked ( window . showInputBox ) . mockReset ( )
589+ vi . mocked ( mockTextEditor . edit ) . mockReset ( )
590+ vi . mocked ( CONFIGURATION . EVENTS . ON_DID_EXTRACT_MESSAGE . fire ) . mockReset ( )
591+ vi . mocked ( msg ) . mockReset ( )
592+ }
593+ } )
506594} )
0 commit comments