RTL はユーザー中心のアプローチを採用しており、要素の並べ替えのテストは次のようになると私は理解しています。
const foo = queryByText('foo');
const bar = queryByText('bar');
expect(foo).toBeInTheDocument();
expect(bar).toBeInTheDocument();
expect(foo).toShowBefore(bar); // THIS IS MY PSEUDOCODE
しかし、RTL で または同等の関数を見つけることができませんでした.toShowBefore()
。コンテンツが特定の順序で表示されることをテストする正しい方法は何ですか?
ベストアンサー1
使用できますドキュメントの位置を比較する。
例えば
const e1 = getByText('a');
const e2 = getByText('b');
expect(e1.compareDocumentPosition(e2)).toBe(2);
ここで関数getByText
から返されますrender
。