@@ -115,6 +115,109 @@ it('should prefix selectors in unignored files', () => {
115115 assert . equal ( out , expected ) ;
116116} ) ;
117117
118+ it ( 'should prefix selectors in included file' , ( ) => {
119+ const out = postcss ( )
120+ . use (
121+ prefixer ( {
122+ prefix : '.hello ' ,
123+ includeFiles : [ 'include-files.css' ] ,
124+ } )
125+ )
126+ . process ( getFixtureContents ( 'include-files.css' ) , {
127+ from : 'include-files.css' ,
128+ } ) . css ;
129+
130+ const expected = getFixtureContents ( 'include-files.expected.css' ) ;
131+
132+ assert . equal ( out , expected ) ;
133+ } ) ;
134+
135+ it ( 'should work as expected when included array is empty' , ( ) => {
136+ const out = postcss ( )
137+ . use (
138+ prefixer ( {
139+ prefix : '.hello ' ,
140+ includeFiles : [ ] ,
141+ } )
142+ )
143+ . process ( getFixtureContents ( 'include-files.css' ) , {
144+ from : 'include-files.css' ,
145+ } ) . css ;
146+
147+ const expected = getFixtureContents ( 'include-files.expected.css' ) ;
148+
149+ assert . equal ( out , expected ) ;
150+ } ) ;
151+
152+ it ( 'should work as expected when included two items and mmore in array' , ( ) => {
153+ const out = postcss ( )
154+ . use (
155+ prefixer ( {
156+ prefix : '.hello ' ,
157+ includeFiles : [
158+ 'include-files.css' ,
159+ 'single-selector.css' ,
160+ 'undefined.css' ,
161+ ] ,
162+ } )
163+ )
164+ . process ( getFixtureContents ( 'include-files.css' ) , {
165+ from : 'include-files.css' ,
166+ } ) . css ;
167+
168+ const expected = getFixtureContents ( 'include-files.expected.css' ) ;
169+
170+ assert . equal ( out , expected ) ;
171+ } ) ;
172+
173+ it ( 'should not prefix selectors in unincluded files' , ( ) => {
174+ const out = postcss ( )
175+ . use (
176+ prefixer ( {
177+ prefix : '.hello ' ,
178+ includeFiles : [ 'include-files.css' ] ,
179+ } )
180+ )
181+ . process ( getFixtureContents ( 'single-selector.css' ) , {
182+ from : 'single-selector.css' ,
183+ } ) . css ;
184+
185+ const expected = getFixtureContents ( 'single-selector.css' ) ;
186+
187+ assert . equal ( out , expected ) ;
188+ } ) ;
189+
190+ it ( 'should use custom symbol between prefix and selector. Use empty to glue' , ( ) => {
191+ const out = postcss ( )
192+ . use (
193+ prefixer ( {
194+ prefix : '.hello' ,
195+ transform ( prefix , selector ) {
196+ return prefix + selector ;
197+ } ,
198+ } )
199+ )
200+ . process ( getFixtureContents ( 'between-symbol-selector.css' ) ) . css ;
201+
202+ const expected = getFixtureContents ( 'between-symbol-selector.expected.css' ) ;
203+
204+ assert . equal ( out , expected ) ;
205+ } ) ;
206+
207+ it ( 'should prefix a selector. Use ".hello .world"' , ( ) => {
208+ const out = postcss ( )
209+ . use (
210+ prefixer ( {
211+ prefix : '.hello .world' ,
212+ } )
213+ )
214+ . process ( getFixtureContents ( 'single-long-selector.css' ) ) . css ;
215+
216+ const expected = getFixtureContents ( 'single-long-selector.expected.css' ) ;
217+
218+ assert . equal ( out , expected ) ;
219+ } ) ;
220+
118221function getFixtureContents ( name ) {
119222 return fs . readFileSync ( `test/fixtures/${ name } ` , 'utf8' ) . trim ( ) ;
120223}
0 commit comments