11import TokenSelector from "@/modules/shared/token-selector/TokenSelector" ;
2- import { TitleFieldProps , WidgetProps } from "@rjsf/utils" ;
32import { fireEvent , render , screen } from "@testing-library/react" ;
4- import { describe , expect , it , vi } from "vitest" ;
3+ import { describe , expect , it } from "vitest" ;
4+ import { getWidgetPropsMock } from "@tests-utils/global-mocks" ;
5+ import { WETH_TOKEN } from "@/modules/shared/data/tokens" ;
56
67describe ( "TokenSelector Component" , ( ) => {
7- const mockRegistry : TitleFieldProps [ "registry" ] = {
8- fields : { } ,
9- widgets : { } ,
10- rootSchema : { } ,
11- templates : {
12- ArrayFieldTemplate : ( ) => null ,
13- ArrayFieldDescriptionTemplate : ( ) => null ,
14- ArrayFieldItemTemplate : ( ) => null ,
15- ArrayFieldTitleTemplate : ( ) => null ,
16- BaseInputTemplate : ( ) => null ,
17- ButtonTemplates : {
18- AddButton : ( ) => null ,
19- MoveDownButton : ( ) => null ,
20- MoveUpButton : ( ) => null ,
21- RemoveButton : ( ) => null ,
22- SubmitButton : ( ) => null ,
23- CopyButton : ( ) => null ,
24- } ,
25- DescriptionFieldTemplate : ( ) => null ,
26- ErrorListTemplate : ( ) => null ,
27- FieldErrorTemplate : ( ) => null ,
28- FieldHelpTemplate : ( ) => null ,
29- FieldTemplate : ( ) => null ,
30- ObjectFieldTemplate : ( ) => null ,
31- TitleFieldTemplate : ( ) => null ,
32- WrapIfAdditionalTemplate : ( ) => null ,
33- UnsupportedFieldTemplate : ( ) => null ,
34- } ,
35- schemaUtils : {
36- getDisplayLabel : ( ) => true ,
37- } as any ,
38- translateString : ( ) => "string" ,
39- formContext : { } ,
40- } ;
41- const mockProps : WidgetProps = {
42- id : "token-selector" ,
43- name : "token" ,
44- label : "Token" ,
45- schema : { type : "string" } ,
46- uiSchema : { } ,
47- formContext : { } ,
48- registry : mockRegistry ,
49- options : { } ,
50- value : "ETH" ,
51- required : false ,
52- readonly : false ,
53- disabled : false ,
54- autofocus : false ,
55- rawErrors : [ ] ,
56- onChange : vi . fn ( ) ,
57- onBlur : vi . fn ( ) ,
58- onFocus : vi . fn ( ) ,
59- placeholder : "" ,
60- hideError : false ,
61- } ;
62-
8+ const widgetProps = getWidgetPropsMock ( WETH_TOKEN ) ;
639 it ( "should open modal when button is clicked" , ( ) => {
64- render ( < TokenSelector { ...mockProps } /> ) ;
10+ render ( < TokenSelector { ...widgetProps } /> ) ;
6511
6612 const button = screen . getByRole ( "button" , { name : "Open modal" } ) ;
6713 expect ( button ) . toBeInTheDocument ( ) ;
@@ -74,7 +20,7 @@ describe("TokenSelector Component", () => {
7420 } ) ;
7521
7622 it ( "should dismiss modal when close button is clicked" , ( ) => {
77- render ( < TokenSelector { ...mockProps } /> ) ;
23+ render ( < TokenSelector { ...widgetProps } /> ) ;
7824
7925 const openButton = screen . getByRole ( "button" , { name : "Open modal" } ) ;
8026 fireEvent . click ( openButton ) ;
@@ -89,7 +35,7 @@ describe("TokenSelector Component", () => {
8935 } ) ;
9036
9137 it ( "should set selected token & dismiss modal when token is selected" , ( ) => {
92- render ( < TokenSelector { ...mockProps } /> ) ;
38+ render ( < TokenSelector { ...widgetProps } /> ) ;
9339
9440 const openButton = screen . getByRole ( "button" , { name : "Open modal" } ) ;
9541 fireEvent . click ( openButton ) ;
@@ -102,7 +48,7 @@ describe("TokenSelector Component", () => {
10248 } ) ;
10349
10450 it ( "should filter out tokens that match search & shows all items when input is cleared" , ( ) => {
105- render ( < TokenSelector { ...mockProps } /> ) ;
51+ render ( < TokenSelector { ...widgetProps } /> ) ;
10652
10753 const openButton = screen . getByRole ( "button" , { name : "Open modal" } ) ;
10854 fireEvent . click ( openButton ) ;
@@ -124,7 +70,7 @@ describe("TokenSelector Component", () => {
12470 } ) ;
12571
12672 it ( "should show message when no matches to the filter are found" , ( ) => {
127- render ( < TokenSelector { ...mockProps } /> ) ;
73+ render ( < TokenSelector { ...widgetProps } /> ) ;
12874
12975 const openButton = screen . getByRole ( "button" , { name : "Open modal" } ) ;
13076 fireEvent . click ( openButton ) ;
@@ -136,7 +82,7 @@ describe("TokenSelector Component", () => {
13682 } ) ;
13783
13884 it ( "should show message when no matches to the filter are found" , ( ) => {
139- render ( < TokenSelector { ...mockProps } /> ) ;
85+ render ( < TokenSelector { ...widgetProps } /> ) ;
14086
14187 const openButton = screen . getByRole ( "button" , { name : "Open modal" } ) ;
14288 fireEvent . click ( openButton ) ;
0 commit comments