( framework: string, harness: ComponentHarness, components: CustomComponents, )
| 88 | .setValues({v1: 3, v2: 4}); |
| 89 | |
| 90 | export const testCustomComponents = ( |
| 91 | framework: string, |
| 92 | harness: ComponentHarness, |
| 93 | components: CustomComponents, |
| 94 | ): void => { |
| 95 | let store: Store; |
| 96 | |
| 97 | beforeEach(() => { |
| 98 | store = createTestStore(); |
| 99 | }); |
| 100 | |
| 101 | describe(`${framework} custom component scenarios`, () => { |
| 102 | test('tables, rows, and cells', async () => { |
| 103 | let rendered = harness.render(components.TablesView, { |
| 104 | store, |
| 105 | cellPrefix: ':', |
| 106 | }); |
| 107 | expect(rendered.container.textContent).toEqual( |
| 108 | 't1:r1:c1:1t2:r1:c1:2r2:c1:3c2:4', |
| 109 | ); |
| 110 | await harness.act(() => store.setCell('t1', 'r1', 'c1', 2)); |
| 111 | expect(rendered.container.textContent).toEqual( |
| 112 | 't1:r1:c1:2t2:r1:c1:2r2:c1:3c2:4', |
| 113 | ); |
| 114 | await harness.act(() => store.delTables()); |
| 115 | expect(rendered.container.textContent).toEqual(''); |
| 116 | rendered.unmount(); |
| 117 | |
| 118 | store = createTestStore(); |
| 119 | rendered = harness.render(components.TableView, { |
| 120 | store, |
| 121 | tableId: 't0', |
| 122 | cellPrefix: ':', |
| 123 | }); |
| 124 | expect(rendered.container.textContent).toEqual('t0:'); |
| 125 | await rendered.rerender({tableId: 't2'}); |
| 126 | expect(rendered.container.textContent).toEqual('t2:r1:c1:2r2:c1:3c2:4'); |
| 127 | await harness.act(() => store.setCell('t2', 'r1', 'c1', 3)); |
| 128 | expect(rendered.container.textContent).toEqual('t2:r1:c1:3r2:c1:3c2:4'); |
| 129 | await harness.act(() => store.delTables()); |
| 130 | expect(rendered.container.textContent).toEqual('t2:'); |
| 131 | rendered.unmount(); |
| 132 | |
| 133 | store = createTestStore(); |
| 134 | rendered = harness.render(components.SortedTableView, { |
| 135 | store, |
| 136 | tableId: 't0', |
| 137 | cellId: 'c0', |
| 138 | descending: true, |
| 139 | cellPrefix: ':', |
| 140 | }); |
| 141 | expect(rendered.container.textContent).toEqual('t0,c0:'); |
| 142 | await rendered.rerender({tableId: 't2', cellId: 'c1'}); |
| 143 | expect(rendered.container.textContent).toEqual( |
| 144 | 't2,c1:r2:c1:3c2:4r1:c1:2', |
| 145 | ); |
| 146 | await harness.act(() => store.setCell('t2', 'r1', 'c1', 3)); |
| 147 | expect(rendered.container.textContent).toEqual( |
no test coverage detected
searching dependent graphs…