File tree Expand file tree Collapse file tree
transforms/update-triggerevent-file-param Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ # update-triggerevent-file-param
2+ A transform to update param in ` triggerEvent ` from ` [ file ] ` to ` { files: [ file ] } `
3+
4+ ## Usage
5+
6+ ```
7+ npx ember-test-helpers-codemod update-triggerevent-file-param path/of/files/ or/some**/*glob.js
8+
9+ # or
10+
11+ yarn global add ember-test-helpers-codemod
12+ ember-test-helpers-codemod update-triggerevent-file-param path/of/files/ or/some**/*glob.js
13+ ```
14+
15+ ## Input / Output
16+
17+ <!-- FIXTURES_TOC_START-->
18+ * [ basic] ( #basic )
19+ <!-- FIXTURES_TOC_END-->
20+
21+ <!-- FIXTURES_CONTENT_START-->
22+ ---
23+ <a id =" basic " >** basic** </a >
24+
25+ ** Input** (<small >[ basic.input.js] ( transforms/update-triggerevent-file-param/__testfixtures__/basic.input.js ) </small >):
26+ ``` js
27+ import { triggerEvent } from ' @ember/test-helpers' ;
28+
29+ test (' test' , async function (assert ) {
30+ await triggerEvent (' [data-test-file-upload-button__input]' , ' change' , [file]);
31+ await triggerEvent (' [data-test-file-upload-button__input]' , ' change' , []);
32+ });
33+
34+ ```
35+
36+ ** Output** (<small >[ basic.input.js] ( transforms/update-triggerevent-file-param/__testfixtures__/basic.output.js ) </small >):
37+ ``` js
38+ import { triggerEvent } from ' @ember/test-helpers' ;
39+
40+ test (' test' , async function (assert ) {
41+ await triggerEvent (' [data-test-file-upload-button__input]' , ' change' , {
42+ files: [file]
43+ });
44+ await triggerEvent (' [data-test-file-upload-button__input]' , ' change' , {
45+ files: []
46+ });
47+ });
48+
49+ ```
50+ <!-- FIXTURE_CONTENT_END-->
Original file line number Diff line number Diff line change 1+ import { triggerEvent } from '@ember/test-helpers' ;
2+
3+ test ( 'test' , async function ( assert ) {
4+ await triggerEvent ( '[data-test-file-upload-button__input]' , 'change' , [ file ] ) ;
5+ await triggerEvent ( '[data-test-file-upload-button__input]' , 'change' , [ ] ) ;
6+ } ) ;
Original file line number Diff line number Diff line change 1+ import { triggerEvent } from '@ember/test-helpers' ;
2+
3+ test ( 'test' , async function ( assert ) {
4+ await triggerEvent ( '[data-test-file-upload-button__input]' , 'change' , {
5+ files : [ file ]
6+ } ) ;
7+ await triggerEvent ( '[data-test-file-upload-button__input]' , 'change' , {
8+ files : [ ]
9+ } ) ;
10+ } ) ;
Original file line number Diff line number Diff line change 1+ const { getParser } = require ( 'codemod-cli' ) . jscodeshift ;
2+
3+ module . exports = function transformer ( file , api ) {
4+ const j = getParser ( api ) ;
5+ const root = j ( file . source ) ;
6+
7+ /**
8+ * A transform to update param in `triggerEvent` from `[ file ]` to `{ files: [ file ] }`
9+ */
10+ function transform ( ) {
11+ root
12+ . find ( j . CallExpression , {
13+ callee : {
14+ name : 'triggerEvent' ,
15+ } ,
16+ } )
17+ . find ( j . ArrayExpression )
18+ . replaceWith ( ( path ) => {
19+ // make sure we just modify the arrayExpression which is the param of triggerEvent call expression
20+ if (
21+ path . parent . node . type === 'CallExpression' &&
22+ path . parent . node . callee . name === 'triggerEvent'
23+ ) {
24+ return j . objectExpression ( [ j . property ( 'init' , j . identifier ( 'files' ) , path . node ) ] ) ;
25+ } else return path . node ;
26+ } ) ;
27+ }
28+
29+ transform ( ) ;
30+
31+ return root . toSource ( {
32+ quote : 'single' ,
33+ trailingComma : false ,
34+ } ) ;
35+ } ;
Original file line number Diff line number Diff line change 1+ 'use strict' ;
2+
3+ const { runTransformTest } = require ( 'codemod-cli' ) ;
4+
5+ runTransformTest ( {
6+ type : 'jscodeshift' ,
7+ name : 'update-triggerevent-file-param' ,
8+ } ) ;
You can’t perform that action at this time.
0 commit comments