Skip to content

Commit

Permalink
feat: add support for Jotai store v2 (#145)
Browse files Browse the repository at this point in the history
* feat: support store v2 + drop support for older store methods

* feat: improve support for promises during time travel

* chore: add testing jotai version

* refactor: use dev4_restore_atoms method

* fix: restore for store v2

* refactor: bump to latest jotai version

* test: add tests for store v2

* fix: call unsub when we delete mounted atom

* refactor: get mounted atoms via dev4_get_mounted_atoms

* refactor: use storev2 for demo storybook

* test: add tests for hooks
  • Loading branch information
arjunvegda authored Jun 6, 2024
1 parent 3f69ad2 commit e707a68
Show file tree
Hide file tree
Showing 33 changed files with 12,999 additions and 1,790 deletions.
12 changes: 10 additions & 2 deletions __tests__/devtools/AtomViewer.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,19 @@ import React, { useMemo } from 'react';
import { act, render, screen, waitFor } from '@testing-library/react';
import { userEvent } from '@testing-library/user-event';
import * as stringifyModule from 'javascript-stringify';
import { useAtomValue } from 'jotai';
import { Provider, useAtomValue } from 'jotai';
import { getDefaultStore } from 'jotai/experimental';
import { atom } from 'jotai/vanilla';
import { DevTools } from 'jotai-devtools';
import { AnyAtom } from 'src/types';
import { customRender } from '../custom-render';
import { customRender as customTestRender } from '../custom-render';

const customRender = (ui: React.ReactElement) =>
customTestRender(ui, {
wrapper: ({ children }) => (
<Provider store={getDefaultStore()}>{children}</Provider>
),
});

const BasicAtomsWithDevTools = () => {
// Create atoms inside the component so that they are recreated for each test
Expand Down
12 changes: 10 additions & 2 deletions __tests__/devtools/TimeTravel.test.tsx
Original file line number Diff line number Diff line change
@@ -1,9 +1,17 @@
import React, { useMemo } from 'react';
import { act, fireEvent, screen, waitFor } from '@testing-library/react';
import { userEvent } from '@testing-library/user-event';
import { atom, useAtomValue, useSetAtom } from 'jotai';
import { Provider, atom, useAtomValue, useSetAtom } from 'jotai';
import { getDefaultStore } from 'jotai/experimental';
import { DevTools, DevToolsProps } from 'jotai-devtools';
import { customRender } from '../custom-render';
import { customRender as customTestRender } from '../custom-render';

const customRender = (ui: React.ReactElement) =>
customTestRender(ui, {
wrapper: ({ children }) => (
<Provider store={getDefaultStore()}>{children}</Provider>
),
});

const BasicAtomsWithDevTools = (props: DevToolsProps) => {
// Create atoms inside the component so that they are recreated for each test
Expand Down
12 changes: 10 additions & 2 deletions __tests__/devtools/basic.test.tsx
Original file line number Diff line number Diff line change
@@ -1,9 +1,17 @@
import React, { useMemo } from 'react';
import { act, fireEvent, screen, waitFor } from '@testing-library/react';
import { userEvent } from '@testing-library/user-event';
import { atom, useAtom } from 'jotai';
import { Provider, atom, useAtom } from 'jotai';
import { getDefaultStore } from 'jotai/experimental';
import { DevTools } from 'jotai-devtools';
import { customRender } from '../custom-render';
import { customRender as customTestRender } from '../custom-render';

const customRender = (ui: React.ReactElement) =>
customTestRender(ui, {
wrapper: ({ children }) => (
<Provider store={getDefaultStore()}>{children}</Provider>
),
});

describe('DevTools - basic', () => {
it('should render the trigger button', () => {
Expand Down
Loading

0 comments on commit e707a68

Please sign in to comment.