evals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
scenario-10
{
"context": "Evaluates whether the solution relies on notion-client to query a database view while honoring its filters, grouping, search, and timezone behaviors, producing grouped results from the SDK response. Focuses on proper use of NotionAPI, getCollectionData, view metadata, and reducer outputs rather than hand-rolled queries.",
"type": "weighted_checklist",
"checklist": [
{
"name": "Authenticated client",
"description": "Creates a NotionAPI instance using the provided authToken (and optional userTimeZone/kyOptions) instead of custom HTTP calls to the Notion endpoints.",
"max_score": 15
},
{
"name": "View metadata",
"description": "Obtains collectionId, collectionViewId, and collectionView data from a page record (e.g., via getPage) and feeds that metadata into queries rather than rebuilding filters manually.",
"max_score": 20
},
{
"name": "View query call",
"description": "Uses getCollectionData(collectionId, collectionViewId, collectionView, { searchQuery, userTimeZone, limit, ... }) to apply the view's filters/sorts and propagate options from QueryOptions (search -> searchQuery, timeZone -> userTimeZone, pageSize -> limit).",
"max_score": 25
},
{
"name": "Grouping usage",
"description": "Builds groups using reducerResults (or board-style buckets) from getCollectionData so that ordering and uncategorized handling mirror the view's grouping rather than deriving group order purely from block properties.",
"max_score": 20
},
{
"name": "Records and totals",
"description": "Extracts items from recordMap.block using blockIds/reducerResults returned by getCollectionData and ensures group counts and overall totals match the SDK-provided counts (total or reducer counts) after applying search/filtering.",
"max_score": 20
}
]
}