@@ -55,9 +55,9 @@ describe('Webpack replace loader ...', () => {
55
55
test : / \. j s $ / ,
56
56
loader : '__this-loader' ,
57
57
options : {
58
- search : ' var VALUE = \'\.*\'' ,
59
- replace : ' var a = \'\'' ,
60
- flags : 'i '
58
+ search : ` var VALUE = '.*'` ,
59
+ replace : ` var a = ''` ,
60
+ flags : 'ig '
61
61
}
62
62
} ) ,
63
63
( error , stats ) => {
@@ -67,7 +67,7 @@ describe('Webpack replace loader ...', () => {
67
67
expect ( error ) . to . equal ( null )
68
68
expect ( contents ) . to . be . a ( 'string' )
69
69
expect ( contents ) . to . not . include ( 'var value' )
70
- expect ( contents ) . to . include ( ' var a = \'\'' )
70
+ expect ( contents ) . to . include ( ` var a = ''` )
71
71
done ( )
72
72
} )
73
73
}
@@ -107,6 +107,30 @@ describe('Webpack replace loader ...', () => {
107
107
)
108
108
} )
109
109
110
+ it ( 'should replace with function replace' , done => {
111
+ webpack ( getTestWebPackConfig (
112
+ {
113
+ test : / \. j s $ / ,
114
+ loader : '__this-loader' ,
115
+ options : {
116
+ search : `var value = '(baz)'` ,
117
+ replace : ( match , p1 , offset , string ) => `var a = '${ p1 . toUpperCase ( ) } '` ,
118
+ flags : 'g'
119
+ }
120
+ } ) ,
121
+ ( error , stats ) => {
122
+ expect ( error ) . to . equal ( null )
123
+
124
+ fs . readFile ( outputFilePath , 'utf8' , ( error , contents ) => {
125
+ expect ( error ) . to . equal ( null )
126
+ expect ( contents ) . to . be . a ( 'string' )
127
+ expect ( contents ) . to . include ( `var a = 'BAZ'` )
128
+ done ( )
129
+ } )
130
+ }
131
+ )
132
+ } )
133
+
110
134
it ( 'should replace using multiple queries' , done => {
111
135
webpack ( getTestWebPackConfig (
112
136
{
0 commit comments