@@ -5,8 +5,8 @@ import { testOptions, TestGenerator } from './AbstractGenerator.spec';
55
66describe ( 'AbstractRenderer' , ( ) => {
77 class TestRenderer extends AbstractRenderer {
8- constructor ( ) {
9- super ( testOptions , new TestGenerator ( ) , [ ] , new CommonModel ( ) , new CommonInputModel ( ) ) ;
8+ constructor ( presets = [ ] ) {
9+ super ( testOptions , new TestGenerator ( ) , presets , new CommonModel ( ) , new CommonInputModel ( ) ) ;
1010 }
1111 render ( ) : Promise < RenderOutput > {
1212 return Promise . resolve ( RenderOutput . toRenderOutput ( { result : '' } ) ) ;
@@ -58,4 +58,144 @@ describe('AbstractRenderer', () => {
5858 expect ( content ) . toEqual ( ' Test' ) ;
5959 } ) ;
6060 } ) ;
61+
62+ describe ( 'runSelfPreset()' , ( ) => {
63+ test ( 'should call correct preset' , async ( ) => {
64+ const presetCallback = jest . fn ( ) ;
65+ const tempRenderer = new TestRenderer ( [
66+ [ {
67+ self : presetCallback as never
68+ } as never , { } as never ] as never
69+ ] ) ;
70+ await tempRenderer . runSelfPreset ( ) ;
71+ expect ( presetCallback ) . toHaveBeenCalled ( ) ;
72+ } ) ;
73+ test ( 'should not call incorrect preset' , async ( ) => {
74+ const presetCallback = jest . fn ( ) ;
75+
76+ const tempRenderer = new TestRenderer ( [
77+ [ {
78+ none_self : presetCallback as never
79+ } as never , { } as never ] as never
80+ ] ) ;
81+ await tempRenderer . runSelfPreset ( ) ;
82+ expect ( presetCallback ) . not . toHaveBeenCalled ( ) ;
83+ } ) ;
84+ } ) ;
85+ describe ( 'runAdditionalContentPreset()' , ( ) => {
86+ test ( 'should call correct preset' , async ( ) => {
87+ const presetCallback = jest . fn ( ) ;
88+ const tempRenderer = new TestRenderer ( [
89+ [ {
90+ additionalContent : presetCallback as never
91+ } as never , { } as never ] as never
92+ ] ) ;
93+ await tempRenderer . runAdditionalContentPreset ( ) ;
94+ expect ( presetCallback ) . toHaveBeenCalled ( ) ;
95+ } ) ;
96+ test ( 'should not call incorrect preset' , async ( ) => {
97+ const presetCallback = jest . fn ( ) ;
98+
99+ const tempRenderer = new TestRenderer ( [
100+ [ {
101+ none_additionalContent : presetCallback as never
102+ } as never , { } as never ] as never
103+ ] ) ;
104+ await tempRenderer . runAdditionalContentPreset ( ) ;
105+ expect ( presetCallback ) . not . toHaveBeenCalled ( ) ;
106+ } ) ;
107+ } ) ;
108+ describe ( 'runPreset()' , ( ) => {
109+ test ( 'should use string' , async ( ) => {
110+ const preset1Callback = jest . fn ( ) ;
111+ const tempRenderer = new TestRenderer ( [
112+ [ {
113+ test : preset1Callback . mockReturnValue ( 'value' ) as never
114+ } as never , { } as never ] as never ,
115+ ] ) ;
116+ const content = await tempRenderer . runPreset ( 'test' ) ;
117+ expect ( content ) . toEqual ( 'value' ) ;
118+ expect ( preset1Callback ) . toHaveBeenCalled ( ) ;
119+ } ) ;
120+ test ( 'should not render non-string values' , async ( ) => {
121+ const preset1Callback = jest . fn ( ) ;
122+ const tempRenderer = new TestRenderer ( [
123+ [ {
124+ test : preset1Callback . mockReturnValue ( 213 ) as never
125+ } as never , { } as never ] as never ,
126+ ] ) ;
127+ const content = await tempRenderer . runPreset ( 'test' ) ;
128+ expect ( content ) . toEqual ( '' ) ;
129+ expect ( preset1Callback ) . toHaveBeenCalled ( ) ;
130+ } ) ;
131+ test ( 'should overwrite previous preset' , async ( ) => {
132+ const preset1Callback = jest . fn ( ) ;
133+ const preset2Callback = jest . fn ( ) ;
134+ const tempRenderer = new TestRenderer ( [
135+ [ {
136+ test : preset1Callback . mockReturnValue ( 'value' ) as never
137+ } as never , { } as never ] as never ,
138+ [ {
139+ test : preset2Callback . mockReturnValue ( 'value2' ) as never
140+ } as never , { } as never ] as never ,
141+ ] ) ;
142+ const content = await tempRenderer . runPreset ( 'test' ) ;
143+ expect ( content ) . toEqual ( 'value2' ) ;
144+ expect ( preset1Callback ) . toHaveBeenCalled ( ) ;
145+ expect ( preset2Callback ) . toHaveBeenCalled ( ) ;
146+ } ) ;
147+ test ( 'should not use previous preset if undefined returned' , async ( ) => {
148+ const preset1Callback = jest . fn ( ) ;
149+ const preset2Callback = jest . fn ( ) ;
150+ const tempRenderer = new TestRenderer ( [
151+ [ {
152+ test : preset1Callback . mockReturnValue ( 'value' ) as never
153+ } as never , { } as never ] as never ,
154+ [ {
155+ test : preset2Callback . mockReturnValue ( undefined ) as never
156+ } as never , { } as never ] as never
157+ ] ) ;
158+ const content = await tempRenderer . runPreset ( 'test' ) ;
159+ expect ( content ) . toEqual ( '' ) ;
160+ expect ( preset1Callback ) . toHaveBeenCalled ( ) ;
161+ expect ( preset2Callback ) . toHaveBeenCalled ( ) ;
162+ } ) ;
163+ test ( 'should not use previous preset if null returned' , async ( ) => {
164+ const preset1Callback = jest . fn ( ) ;
165+ const preset2Callback = jest . fn ( ) ;
166+ const tempRenderer = new TestRenderer ( [
167+ [ {
168+ test : preset1Callback . mockReturnValue ( 'value' ) as never
169+ } as never , { } as never ] as never ,
170+ [ {
171+ test : preset2Callback . mockReturnValue ( null ) as never
172+ } as never , { } as never ] as never
173+ ] ) ;
174+ const content = await tempRenderer . runPreset ( 'test' ) ;
175+ expect ( content ) . toEqual ( '' ) ;
176+ expect ( preset1Callback ) . toHaveBeenCalled ( ) ;
177+ expect ( preset2Callback ) . toHaveBeenCalled ( ) ;
178+ } ) ;
179+ test ( 'should not use previous preset if empty string returned' , async ( ) => {
180+ const preset1Callback = jest . fn ( ) ;
181+ const preset2Callback = jest . fn ( ) ;
182+ const tempRenderer = new TestRenderer ( [
183+ [ {
184+ test : preset1Callback . mockReturnValue ( 'value' ) as never
185+ } as never , { } as never ] as never ,
186+ [ {
187+ test : preset2Callback . mockReturnValue ( '' ) as never
188+ } as never , { } as never ] as never
189+ ] ) ;
190+ const content = await tempRenderer . runPreset ( 'test' ) ;
191+ expect ( content ) . toEqual ( '' ) ;
192+ expect ( preset1Callback ) . toHaveBeenCalled ( ) ;
193+ expect ( preset2Callback ) . toHaveBeenCalled ( ) ;
194+ } ) ;
195+ test ( 'should default to empty string with no presets' , async ( ) => {
196+ const tempRenderer = new TestRenderer ( [ ] ) ;
197+ const content = await tempRenderer . runPreset ( 'test' ) ;
198+ expect ( content ) . toEqual ( '' ) ;
199+ } ) ;
200+ } ) ;
61201} ) ;
0 commit comments