-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'main' into docs-showcase-addition
- Loading branch information
Showing
407 changed files
with
42,130 additions
and
18,062 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
--- | ||
'@xstate/test': patch | ||
--- | ||
|
||
author: @Silverwolf90 | ||
pr: #3380 | ||
commit: cec8587 | ||
|
||
Narrow down the `event` type passed to `EventExecutor` from the corresponding key of the `events` object |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
--- | ||
'@xstate/test': patch | ||
--- | ||
|
||
author: @Andarist | ||
pr: #3367 | ||
commit: b8cf8cfdc | ||
|
||
Fixed `getShortestPathsTo` issue that caused candidate paths to be incorrectly removed while deduplicating generated paths. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
--- | ||
'@xstate/test': minor | ||
--- | ||
|
||
Improved test output by removing id from description |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
--- | ||
'@xstate/graph': patch | ||
'@xstate/test': patch | ||
--- | ||
|
||
The `serializeState()` path traversal option now provides 3 arguments to the function passed in: | ||
|
||
1. `state` - the current state | ||
2. `event` - the event that caused traversal to this state | ||
3. `prevState` 🆕 - the state before the current state (may be `undefined`) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
{ | ||
"$schema": "https://unpkg.com/@changesets/[email protected]/schema.json", | ||
"changelog": ["@changesets/changelog-github", { "repo": "statelyai/xstate" }], | ||
"commit": false, | ||
"linked": [], | ||
"access": "public", | ||
"baseBranch": "main", | ||
"ignore": ["@xstate/analytics", "@xstate/scxml"], | ||
"___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH": { | ||
"onlyUpdatePeerDependentsWhenOutOfRange": true, | ||
"useCalculatedVersionForSnapshots": true | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
--- | ||
'@xstate/graph': major | ||
--- | ||
|
||
pr: #3036 | ||
author: @davidkpiano | ||
|
||
Renamed `getAdjacencyMap` to `getValueAdjacencyMap`. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
--- | ||
'@xstate/graph': major | ||
--- | ||
|
||
pr: #3036 | ||
author: @davidkpiano | ||
|
||
Changed `getSimplePaths` to `getSimplePlans`, and `getShortestPaths` to `getShortestPlans`. Both of these functions can be passed a machine, and return `StatePlan[]`. | ||
|
||
Added functions `traverseSimplePlans`, `traverseShortestPlans`,`traverseShortestPlansFromTo`, `traverseSimplePlansTo` and `traverseSimplePlansFromTo`, which can be passed a `Behavior` and return `StatePlan[]`. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
--- | ||
'@xstate/test': major | ||
--- | ||
|
||
pr: #3036 | ||
|
||
author: @mattpocock | ||
author: @davidkpiano | ||
|
||
Substantially simplified how paths and plans work in `TestModel`. Changed `getShortestPlans` and `getSimplePlans` to `getShortestPaths` and `getSimplePaths`. These functions now return an array of paths, instead of an array of plans which contain paths. | ||
|
||
Also added `getPaths`, which defaults to `getShortestPaths`. This can be passed a `pathGenerator` to customize how paths are generated. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
--- | ||
'@xstate/test': major | ||
--- | ||
|
||
pr: #3036 | ||
author: @mattpocock | ||
|
||
Moved event cases out of `events`, and into their own attribute called `eventCases`: | ||
|
||
```ts | ||
const model = createTestModel(machine, { | ||
eventCases: { | ||
CHOOSE_CURRENCY: [ | ||
{ | ||
currency: 'GBP' | ||
}, | ||
{ | ||
currency: 'USD' | ||
} | ||
] | ||
} | ||
}); | ||
|
||
model.getPaths().forEach((path) => { | ||
it(path.description, async () => { | ||
await path.test({ | ||
events: { | ||
CHOOSE_CURRENCY: ({ event }) => { | ||
console.log(event.currency); | ||
} | ||
} | ||
}); | ||
}); | ||
}); | ||
``` | ||
|
||
`eventCases` will also now always produce a new path, instead of only creating a path for the first case which matches. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
--- | ||
'@xstate/test': major | ||
--- | ||
|
||
pr: #3036 | ||
author: @davidkpiano | ||
|
||
Removed `.testCoverage()`, and instead made `getPlans`, `getShortestPlans` and `getSimplePlans` cover all states and transitions enabled by event cases by default. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
--- | ||
'@xstate/test': major | ||
--- | ||
|
||
pr: #3036 | ||
author: @davidkpiano | ||
|
||
Added validation on `createTestModel` to ensure that you don't include invalid machine configuration in your test machine. Invalid machine configs include `invoke`, `after`, and any actions with a `delay`. | ||
|
||
Added `createTestMachine`, which provides a slimmed-down API for creating machines which removes these types from the config type signature. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
--- | ||
'@xstate/test': major | ||
--- | ||
|
||
pr: #3036 | ||
author: @davidkpiano | ||
|
||
`getShortestPaths()` and `getPaths()` will now traverse all _transitions_ by default, not just all events. | ||
|
||
Take this machine: | ||
|
||
```ts | ||
const machine = createTestMachine({ | ||
initial: 'toggledOn', | ||
states: { | ||
toggledOn: { | ||
on: { | ||
TOGGLE: 'toggledOff' | ||
} | ||
}, | ||
toggledOff: { | ||
on: { | ||
TOGGLE: 'toggledOn' | ||
} | ||
} | ||
} | ||
}); | ||
``` | ||
|
||
In `@xstate/test` version 0.x, this would run this path by default: | ||
|
||
```txt | ||
toggledOn -> TOGGLE -> toggledOff | ||
``` | ||
|
||
This is because it satisfies two conditions: | ||
|
||
1. Covers all states | ||
2. Covers all events | ||
|
||
But this a complete test - it doesn't test if going from `toggledOff` to `toggledOn` works. | ||
|
||
Now, we seek to cover all transitions by default. So the path would be: | ||
|
||
```txt | ||
toggledOn -> TOGGLE -> toggledOff -> TOGGLE -> toggledOn | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
--- | ||
'@xstate/test': minor | ||
--- | ||
|
||
pr: #3036 | ||
author: @mattpocock | ||
author: @davidkpiano | ||
|
||
Added `path.testSync(...)` to allow for testing paths in sync-only environments, such as Cypress. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
--- | ||
'@xstate/test': major | ||
--- | ||
|
||
pr: #3036 | ||
author: @mattpocock | ||
author: @davidkpiano | ||
|
||
Moved `events` from `createTestModel` to `path.test`. | ||
|
||
Old: | ||
|
||
```ts | ||
const model = createTestModel(machine, { | ||
events: {} | ||
}); | ||
``` | ||
|
||
New: | ||
|
||
```ts | ||
const paths = model.getPaths().forEach((path) => { | ||
path.test({ | ||
events: {} | ||
}); | ||
}); | ||
``` | ||
|
||
This allows for easier usage of per-test mocks and per-test context. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
--- | ||
'@xstate/test': major | ||
--- | ||
|
||
pr: #3036 | ||
author: @mattpocock | ||
author: @davidkpiano | ||
|
||
Added `states` to `path.test()`: | ||
|
||
```ts | ||
const paths = model.getPaths().forEach((path) => { | ||
path.test({ | ||
states: { | ||
myState: () => {}, | ||
'myState.deep': () => {} | ||
} | ||
}); | ||
}); | ||
``` | ||
|
||
This allows you to define your tests outside of your machine, keeping the machine itself easy to read. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
--- | ||
'@xstate/graph': patch | ||
--- | ||
|
||
Fixed an internal import to not import from `xstate/src` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
--- | ||
'@xstate/graph': patch | ||
'@xstate/test': patch | ||
--- | ||
|
||
author: @davidkpiano | ||
pr: #3864 | ||
commit: 59f3a8e | ||
|
||
Event cases are now specified as an array of event objects, instead of an object with event types as keys and event object payloads as values: | ||
|
||
```diff | ||
const shortestPaths = getShortestPaths(someMachine, { | ||
- eventCases: { | ||
- click: [{ x: 10, y: 10 }, { x: 20, y: 20 }] | ||
- } | ||
+ events: [ | ||
+ { type: 'click', x: 10, y: 10 }, | ||
+ { type: 'click', x: 20, y: 20 } | ||
+ ] | ||
}); | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
{ | ||
"mode": "pre", | ||
"tag": "alpha", | ||
"initialVersions": { | ||
"xstate": "4.32.1", | ||
"@xstate/analytics": "0.0.1", | ||
"@xstate/fsm": "2.0.0", | ||
"@xstate/graph": "2.0.0-alpha.0", | ||
"@xstate/immer": "0.3.1", | ||
"@xstate/inspect": "0.7.0", | ||
"@xstate/react": "3.0.0", | ||
"@xstate/scxml": "0.2.1", | ||
"@xstate/svelte": "2.0.0", | ||
"@xstate/test": "1.0.0-alpha.0", | ||
"@xstate/vue": "2.0.0", | ||
"@xstate/solid": "0.1.3" | ||
}, | ||
"changesets": [ | ||
"curly-windows-burn", | ||
"curly-windows-learn", | ||
"great-lions-buy", | ||
"lazy-turtles-brand", | ||
"lazy-turtles-bread", | ||
"lazy-turtles-grand", | ||
"lazy-turtles-grate", | ||
"lazy-turtles-great", | ||
"lazy-turtles-mate", | ||
"lazy-turtles-trade", | ||
"ninety-paws-roll", | ||
"plenty-insects-visit" | ||
] | ||
} |
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.