Skip to content

Commit 078ec73

Browse files
committed
additional tests
1 parent 235cd0a commit 078ec73

File tree

3 files changed

+62
-1
lines changed

3 files changed

+62
-1
lines changed

test/snapshots/test.ts.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,3 +200,30 @@ Generated by [AVA](https://avajs.dev).
200200
onClick: updateUser␊
201201
}, "Click Me"));␊
202202
}`
203+
204+
## Mix and Match State
205+
206+
> Snapshot 1
207+
208+
`import * as React from "react";␊
209+
210+
function App() {␊
211+
const [users, setUsers] = React.useState([{␊
212+
name: "reaper"␊
213+
}]);␊
214+
const [updateCount, setUpdateCount] = React.useState(1);␊
215+
216+
const updateUser = () => {␊
217+
const _nextUsers = users.slice();␊
218+
219+
_nextUsers[0].name = "barelyhuman";␊
220+
setUser(_nextUsers);␊
221+
setUpdateCount(updateCount + 1);␊
222+
};␊
223+
224+
return /*#__PURE__*/React.createElement(React.Fragment, null, users.map(user => {␊
225+
return /*#__PURE__*/React.createElement("p", null, user.name);␊
226+
}), /*#__PURE__*/React.createElement("p", null, updateCount), /*#__PURE__*/React.createElement("button", {␊
227+
onClick: updateUser␊
228+
}, "Click Me"));␊
229+
}`

test/snapshots/test.ts.snap

69 Bytes
Binary file not shown.

test/test.ts

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import test from 'ava'
22
import {transform} from '@babel/core'
3-
import plugin from '../'
3+
import plugin from '../source/index'
44

55
const compile = (code: string) =>
66
transform(code, {
@@ -253,3 +253,37 @@ test('Array Update', (t) => {
253253
}
254254
t.snapshot(result.code)
255255
})
256+
257+
test('Mix and Match State', (t) => {
258+
const code = `
259+
import * as React from "react";
260+
261+
function App() {
262+
let $users = [{ name: "reaper" }];
263+
const [updateCount,setUpdateCount] = React.useState(1);
264+
265+
const updateUser = () => {
266+
const _nextUsers =$users.slice();
267+
_nextUsers[0].name = "barelyhuman"
268+
$user = _nextUsers;
269+
setUpdateCount(updateCount+1)
270+
};
271+
272+
return (
273+
<>
274+
{$users.map(user=>{
275+
return <p>{user.name}</p>
276+
})}
277+
<p>{updateCount}</p>
278+
<button onClick={updateUser}>Click Me</button>
279+
</>
280+
);
281+
}
282+
`
283+
284+
const result = compile(code)
285+
if (!result) {
286+
return t.fail()
287+
}
288+
t.snapshot(result.code)
289+
})

0 commit comments

Comments
 (0)