Validates pagination index API results against expected entity order.

Compares the order of entities returned by a pagination API with manually sorted expected results. Validates that entity IDs appear in the correct sequence. Commonly used for testing database queries, search results, and any paginated data APIs.

  // Test article pagination
const expectedArticles = await db.articles.findAll({ order: 'created_at DESC' });
const actualArticles = await api.functional.getArticles({ page: 1, limit: 10 });

TestValidator.index("article pagination order")(expectedArticles)(
actualArticles,
true // enable trace logging
);

// Test user search results
const manuallyFilteredUsers = allUsers.filter(u => u.name.includes("John"));
const apiSearchResults = await api.functional.searchUsers({ query: "John" });

TestValidator.index("user search results")(manuallyFilteredUsers)(
apiSearchResults
);

Error when entity order differs between expected and actual results

  • Parameters

    • title: string

      Descriptive title used in error messages when order differs

    Returns <Solution extends IEntity<any>>(
        expected: Solution[],
    ) => <Summary extends IEntity<any>>(
        gotten: Summary[],
        trace?: boolean,
    ) => void

    A currying function chain: expected entities, then actual entities