+ {lockedTableName === undefined ? (
+
+ getStoredDataViewQueryDefinition(file, table.name) ===
+ undefined ? undefined : (
+
+ )
+ }
+ cacheKey="appResources"
+ currentTableName={tableName}
+ getAction={(table): (() => void) =>
+ (): void => {
+ setTableName(table.name);
+ setRememberedTable(table.name);
+ }}
+ />
+ ) : undefined}
+
+
+
+ {dataViewsText.configureQuery()}
+
+ );
+}
diff --git a/specifyweb/frontend/js_src/lib/components/DataViews/__tests__/DataViewTables.test.tsx b/specifyweb/frontend/js_src/lib/components/DataViews/__tests__/DataViewTables.test.tsx
new file mode 100644
index 00000000000..c8c9bd556a4
--- /dev/null
+++ b/specifyweb/frontend/js_src/lib/components/DataViews/__tests__/DataViewTables.test.tsx
@@ -0,0 +1,70 @@
+import { renderHook, waitFor } from '@testing-library/react';
+
+import { Http } from '../../../utils/ajax/definitions';
+import { throttledPromise } from '../../../utils/ajax/throttledPromise';
+import {
+ queryCountPromiseGenerator,
+ querySpecToResource,
+} from '../../Statistics/hooks';
+import { useTableRecordCounts } from '../DataViewTables';
+
+jest.mock('../../../utils/ajax/throttledPromise', () => ({
+ throttledPromise: jest.fn(
+ (_key: string, generator: () => Promise