@@ -17,7 +17,13 @@ import { renderWithAppContext } from '../../../test/reactTestLibraryHelpers';
1717
1818import { TEST_LKS_STARTER_MODULE_CONTEXT } from '../../../productFixtures' ;
1919
20- import { SampleTypeDesigner , SampleTypeDesignerImpl } from './SampleTypeDesigner' ;
20+ import {
21+ SampleTypeDesigner ,
22+ SampleTypeDesignerImpl ,
23+ SampleTypeDesignerImplProps ,
24+ SampleTypeDesignerProps ,
25+ } from './SampleTypeDesigner' ;
26+ import { getQueryTestAPIWrapper } from '../../../query/APIWrapper' ;
2127
2228const SERVER_CONTEXT = {
2329 moduleContext : {
@@ -57,81 +63,66 @@ const PARENT_OPTIONS = [
5763 } ,
5864] ;
5965
60- const BASE_PROPS = {
61- appPropertiesOnly : true ,
62- onComplete : jest . fn ( ) ,
63- onCancel : jest . fn ( ) ,
66+ const DESIGNER_PROPS : SampleTypeDesignerProps = {
6467 api : getTestAPIWrapper ( jest . fn , {
6568 entity : getEntityTestAPIWrapper ( jest . fn , {
6669 initParentOptionsSelects : jest . fn ( ) . mockResolvedValue ( {
6770 parentOptions : PARENT_OPTIONS ,
6871 parentAliases : Map ( ) ,
6972 } ) ,
73+ loadNameExpressionOptions : jest . fn ( ) . mockResolvedValue ( { } ) ,
74+ } ) ,
75+ query : getQueryTestAPIWrapper ( jest . fn , {
76+ selectRows : jest . fn ( ) . mockResolvedValue ( { rows : [ ] } ) ,
7077 } ) ,
7178 } ) ,
79+ appPropertiesOnly : true ,
80+ onCancel : jest . fn ( ) ,
81+ onComplete : jest . fn ( ) ,
82+ } ;
83+
84+ const DESIGNER_IMPL_PROPS : SampleTypeDesignerImplProps = {
85+ currentPanelIndex : 0 ,
86+ firstState : true ,
87+ onFinish : jest . fn ( ) ,
88+ onTogglePanel : jest . fn ( ) ,
89+ setSubmitting : jest . fn ( ) ,
90+ submitting : false ,
91+ validatePanel : 0 ,
92+ visitedPanels : List ( ) ,
93+ ...DESIGNER_PROPS ,
7294} ;
7395
7496describe ( 'SampleTypeDesigner' , ( ) => {
7597 test ( 'default properties' , async ( ) => {
76- const form = (
77- < SampleTypeDesignerImpl
78- { ...BASE_PROPS }
79- currentPanelIndex = { 0 }
80- firstState = { true }
81- onFinish = { jest . fn ( ) }
82- onTogglePanel = { jest . fn ( ) }
83- setSubmitting = { jest . fn ( ) }
84- submitting = { false }
85- validatePanel = { 0 }
86- visitedPanels = { List ( ) }
87- />
88- ) ;
89-
90- renderWithAppContext ( form , {
91- serverContext : SERVER_CONTEXT ,
92- } ) ;
98+ renderWithAppContext ( < SampleTypeDesignerImpl { ...DESIGNER_IMPL_PROPS } /> , { serverContext : SERVER_CONTEXT } ) ;
9399
94100 await waitFor ( ( ) => {
95101 expect ( document . getElementsByClassName ( 'domain-form-panel' ) ) . toHaveLength ( 2 ) ;
96102 } ) ;
97103 const panelTitles = document . querySelectorAll ( '.domain-panel-title' ) ;
98- expect ( panelTitles [ 0 ] . textContent ) . toBe ( 'Sample Type Properties' ) ;
99- expect ( panelTitles [ 1 ] . textContent ) . toBe ( 'Fields' ) ;
104+ expect ( panelTitles [ 0 ] ) . toHaveTextContent ( 'Sample Type Properties' ) ;
105+ expect ( panelTitles [ 1 ] ) . toHaveTextContent ( 'Fields' ) ;
100106 } ) ;
101107
102108 test ( 'allowFolderExclusion' , async ( ) => {
103- const form = (
104- < SampleTypeDesignerImpl
105- { ...BASE_PROPS }
106- currentPanelIndex = { 0 }
107- firstState = { true }
108- onFinish = { jest . fn ( ) }
109- onTogglePanel = { jest . fn ( ) }
110- setSubmitting = { jest . fn ( ) }
111- submitting = { false }
112- validatePanel = { 0 }
113- visitedPanels = { List ( ) }
114- allowFolderExclusion
115- />
116- ) ;
117-
118- renderWithAppContext ( form , {
109+ renderWithAppContext ( < SampleTypeDesignerImpl { ...DESIGNER_IMPL_PROPS } allowFolderExclusion /> , {
119110 serverContext : SERVER_CONTEXT ,
120111 } ) ;
121112
122113 await waitFor ( ( ) => {
123114 expect ( document . getElementsByClassName ( 'domain-form-panel' ) ) . toHaveLength ( 3 ) ;
124115 } ) ;
125116 const panelTitles = document . querySelectorAll ( '.domain-panel-title' ) ;
126- expect ( panelTitles [ 0 ] . textContent ) . toBe ( 'Sample Type Properties' ) ;
127- expect ( panelTitles [ 1 ] . textContent ) . toBe ( 'Fields' ) ;
128- expect ( panelTitles [ 2 ] . textContent ) . toBe ( 'Folders' ) ;
117+ expect ( panelTitles [ 0 ] ) . toHaveTextContent ( 'Sample Type Properties' ) ;
118+ expect ( panelTitles [ 1 ] ) . toHaveTextContent ( 'Fields' ) ;
119+ expect ( panelTitles [ 2 ] ) . toHaveTextContent ( 'Folders' ) ;
129120 } ) ;
130121
131122 test ( 'initModel with name URL props' , async ( ) => {
132123 const form = (
133124 < SampleTypeDesignerImpl
134- { ...BASE_PROPS }
125+ { ...DESIGNER_IMPL_PROPS }
135126 domainFormDisplayOptions = { {
136127 hideConditionalFormatting : true ,
137128 } }
@@ -146,31 +137,22 @@ describe('SampleTypeDesigner', () => {
146137 nameReadOnly : true ,
147138 } )
148139 ) }
149- currentPanelIndex = { 0 }
150- firstState = { true }
151- onFinish = { jest . fn ( ) }
152- onTogglePanel = { jest . fn ( ) }
153- setSubmitting = { jest . fn ( ) }
154- submitting = { false }
155- validatePanel = { 0 }
156- visitedPanels = { List ( ) }
157140 />
158141 ) ;
159- renderWithAppContext ( form , {
160- serverContext : SERVER_CONTEXT ,
161- } ) ;
142+ renderWithAppContext ( form , { serverContext : SERVER_CONTEXT } ) ;
162143
163144 await waitFor ( ( ) => {
164145 expect ( document . querySelectorAll ( '.domain-form-panel' ) ) . toHaveLength ( 2 ) ;
165146 } ) ;
166147 const panelTitles = document . querySelectorAll ( '.domain-panel-title' ) ;
167- expect ( panelTitles [ 0 ] . textContent ) . toBe ( 'Sample Type Properties' ) ;
168- expect ( panelTitles [ 1 ] . textContent ) . toBe ( 'Fields' ) ;
148+ expect ( panelTitles [ 0 ] ) . toHaveTextContent ( 'Sample Type Properties' ) ;
149+ expect ( panelTitles [ 1 ] ) . toHaveTextContent ( 'Fields' ) ;
169150 expect ( document . getElementsByClassName ( 'translator--toggle__wizard' ) ) . toHaveLength ( 1 ) ;
170151 } ) ;
171152
172153 test ( 'open fields panel, with barcodes' , async ( ) => {
173- renderWithAppContext ( < SampleTypeDesigner { ...BASE_PROPS } /> , {
154+ // NOTE: Here we are calling the full designer, SampleTypeDesigner, not the SampleTypeDesignerImpl
155+ renderWithAppContext ( < SampleTypeDesigner { ...DESIGNER_PROPS } /> , {
174156 serverContext : {
175157 moduleContext : {
176158 ...TEST_LKS_STARTER_MODULE_CONTEXT ,
@@ -187,8 +169,7 @@ describe('SampleTypeDesigner', () => {
187169 const alerts = document . getElementsByClassName ( 'alert' ) ;
188170 // still expect to have only two alerts. We don't show the Barcode header in the file import panel.
189171 // Jest doesn't want to switch to that panel.
190- expect ( alerts ) . toHaveLength ( 2 ) ;
191- expect ( alerts [ 0 ] . textContent ) . toEqual ( PROPERTIES_PANEL_ERROR_MSG ) ;
192- expect ( alerts [ 1 ] . textContent ) . toEqual ( 'Please correct errors in the properties panel before saving.' ) ;
172+ expect ( alerts [ 0 ] ) . toHaveTextContent ( PROPERTIES_PANEL_ERROR_MSG ) ;
173+ expect ( alerts [ 1 ] ) . toHaveTextContent ( 'Please correct errors in the properties panel before saving.' ) ;
193174 } ) ;
194175} ) ;
0 commit comments