mirror of
https://github.com/TryGhost/Ghost.git
synced 2024-12-26 12:21:36 +03:00
Readded activity feed pagination tests (#15776)
fixes https://github.com/TryGhost/Team/issues/2218 The test should run a lot faster now.
This commit is contained in:
parent
b526c4b719
commit
231ceedc72
@ -22951,6 +22951,606 @@ Object {
|
|||||||
}
|
}
|
||||||
`;
|
`;
|
||||||
|
|
||||||
|
exports[`Activity Feed API Filter-based pagination Can do filter based pagination for aggregated clicks for all posts 1: [body] 1`] = `
|
||||||
|
Object {
|
||||||
|
"events": Array [
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
"meta": Object {
|
||||||
|
"pagination": Object {
|
||||||
|
"limit": "32",
|
||||||
|
"next": null,
|
||||||
|
"page": null,
|
||||||
|
"pages": 2,
|
||||||
|
"prev": null,
|
||||||
|
"total": 33,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
`;
|
||||||
|
|
||||||
|
exports[`Activity Feed API Filter-based pagination Can do filter based pagination for aggregated clicks for all posts 2: [headers] 1`] = `
|
||||||
|
Object {
|
||||||
|
"access-control-allow-origin": "http://127.0.0.1:2369",
|
||||||
|
"cache-control": "no-cache, private, no-store, must-revalidate, max-stale=0, post-check=0, pre-check=0",
|
||||||
|
"content-length": StringMatching /\\\\d\\+/,
|
||||||
|
"content-type": "application/json; charset=utf-8",
|
||||||
|
"etag": StringMatching /\\(\\?:W\\\\/\\)\\?"\\(\\?:\\[ !#-\\\\x7E\\\\x80-\\\\xFF\\]\\*\\|\\\\r\\\\n\\[\\\\t \\]\\|\\\\\\\\\\.\\)\\*"/,
|
||||||
|
"vary": "Accept-Version, Origin, Accept-Encoding",
|
||||||
|
"x-powered-by": "Express",
|
||||||
|
}
|
||||||
|
`;
|
||||||
|
|
||||||
|
exports[`Activity Feed API Filter-based pagination Can do filter based pagination for aggregated clicks for all posts 3: [body] 1`] = `
|
||||||
|
Object {
|
||||||
|
"events": Array [
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
"meta": Object {
|
||||||
|
"pagination": Object {
|
||||||
|
"limit": "32",
|
||||||
|
"next": null,
|
||||||
|
"page": null,
|
||||||
|
"pages": 1,
|
||||||
|
"prev": null,
|
||||||
|
"total": 1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
`;
|
||||||
|
|
||||||
|
exports[`Activity Feed API Filter-based pagination Can do filter based pagination for aggregated clicks for all posts 4: [headers] 1`] = `
|
||||||
|
Object {
|
||||||
|
"access-control-allow-origin": "http://127.0.0.1:2369",
|
||||||
|
"cache-control": "no-cache, private, no-store, must-revalidate, max-stale=0, post-check=0, pre-check=0",
|
||||||
|
"content-length": StringMatching /\\\\d\\+/,
|
||||||
|
"content-type": "application/json; charset=utf-8",
|
||||||
|
"etag": StringMatching /\\(\\?:W\\\\/\\)\\?"\\(\\?:\\[ !#-\\\\x7E\\\\x80-\\\\xFF\\]\\*\\|\\\\r\\\\n\\[\\\\t \\]\\|\\\\\\\\\\.\\)\\*"/,
|
||||||
|
"vary": "Accept-Version, Origin, Accept-Encoding",
|
||||||
|
"x-powered-by": "Express",
|
||||||
|
}
|
||||||
|
`;
|
||||||
|
|
||||||
|
exports[`Activity Feed API Filter-based pagination Can do filter based pagination for aggregated clicks for one post 1: [body] 1`] = `
|
||||||
|
Object {
|
||||||
|
"events": Array [
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
"meta": Object {
|
||||||
|
"pagination": Object {
|
||||||
|
"limit": "8",
|
||||||
|
"next": null,
|
||||||
|
"page": null,
|
||||||
|
"pages": 2,
|
||||||
|
"prev": null,
|
||||||
|
"total": 9,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
`;
|
||||||
|
|
||||||
|
exports[`Activity Feed API Filter-based pagination Can do filter based pagination for aggregated clicks for one post 2: [headers] 1`] = `
|
||||||
|
Object {
|
||||||
|
"access-control-allow-origin": "http://127.0.0.1:2369",
|
||||||
|
"cache-control": "no-cache, private, no-store, must-revalidate, max-stale=0, post-check=0, pre-check=0",
|
||||||
|
"content-length": StringMatching /\\\\d\\+/,
|
||||||
|
"content-type": "application/json; charset=utf-8",
|
||||||
|
"etag": StringMatching /\\(\\?:W\\\\/\\)\\?"\\(\\?:\\[ !#-\\\\x7E\\\\x80-\\\\xFF\\]\\*\\|\\\\r\\\\n\\[\\\\t \\]\\|\\\\\\\\\\.\\)\\*"/,
|
||||||
|
"vary": "Accept-Version, Origin, Accept-Encoding",
|
||||||
|
"x-powered-by": "Express",
|
||||||
|
}
|
||||||
|
`;
|
||||||
|
|
||||||
|
exports[`Activity Feed API Filter-based pagination Can do filter based pagination for aggregated clicks for one post 3: [body] 1`] = `
|
||||||
|
Object {
|
||||||
|
"events": Array [
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
"meta": Object {
|
||||||
|
"pagination": Object {
|
||||||
|
"limit": "8",
|
||||||
|
"next": null,
|
||||||
|
"page": null,
|
||||||
|
"pages": 1,
|
||||||
|
"prev": null,
|
||||||
|
"total": 1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
`;
|
||||||
|
|
||||||
|
exports[`Activity Feed API Filter-based pagination Can do filter based pagination for aggregated clicks for one post 4: [headers] 1`] = `
|
||||||
|
Object {
|
||||||
|
"access-control-allow-origin": "http://127.0.0.1:2369",
|
||||||
|
"cache-control": "no-cache, private, no-store, must-revalidate, max-stale=0, post-check=0, pre-check=0",
|
||||||
|
"content-length": StringMatching /\\\\d\\+/,
|
||||||
|
"content-type": "application/json; charset=utf-8",
|
||||||
|
"etag": StringMatching /\\(\\?:W\\\\/\\)\\?"\\(\\?:\\[ !#-\\\\x7E\\\\x80-\\\\xFF\\]\\*\\|\\\\r\\\\n\\[\\\\t \\]\\|\\\\\\\\\\.\\)\\*"/,
|
||||||
|
"vary": "Accept-Version, Origin, Accept-Encoding",
|
||||||
|
"x-powered-by": "Express",
|
||||||
|
}
|
||||||
|
`;
|
||||||
|
|
||||||
|
exports[`Activity Feed API Filter-based pagination Can do filter based pagination for all posts 1: [body] 1`] = `
|
||||||
|
Object {
|
||||||
|
"events": Array [
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
"meta": Object {
|
||||||
|
"pagination": Object {
|
||||||
|
"limit": "36",
|
||||||
|
"next": null,
|
||||||
|
"page": null,
|
||||||
|
"pages": 2,
|
||||||
|
"prev": null,
|
||||||
|
"total": 37,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
`;
|
||||||
|
|
||||||
|
exports[`Activity Feed API Filter-based pagination Can do filter based pagination for all posts 2: [headers] 1`] = `
|
||||||
|
Object {
|
||||||
|
"access-control-allow-origin": "http://127.0.0.1:2369",
|
||||||
|
"cache-control": "no-cache, private, no-store, must-revalidate, max-stale=0, post-check=0, pre-check=0",
|
||||||
|
"content-length": StringMatching /\\\\d\\+/,
|
||||||
|
"content-type": "application/json; charset=utf-8",
|
||||||
|
"etag": StringMatching /\\(\\?:W\\\\/\\)\\?"\\(\\?:\\[ !#-\\\\x7E\\\\x80-\\\\xFF\\]\\*\\|\\\\r\\\\n\\[\\\\t \\]\\|\\\\\\\\\\.\\)\\*"/,
|
||||||
|
"vary": "Accept-Version, Origin, Accept-Encoding",
|
||||||
|
"x-powered-by": "Express",
|
||||||
|
}
|
||||||
|
`;
|
||||||
|
|
||||||
|
exports[`Activity Feed API Filter-based pagination Can do filter based pagination for all posts 3: [body] 1`] = `
|
||||||
|
Object {
|
||||||
|
"events": Array [
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
"meta": Object {
|
||||||
|
"pagination": Object {
|
||||||
|
"limit": "36",
|
||||||
|
"next": null,
|
||||||
|
"page": null,
|
||||||
|
"pages": 1,
|
||||||
|
"prev": null,
|
||||||
|
"total": 1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
`;
|
||||||
|
|
||||||
|
exports[`Activity Feed API Filter-based pagination Can do filter based pagination for all posts 4: [headers] 1`] = `
|
||||||
|
Object {
|
||||||
|
"access-control-allow-origin": "http://127.0.0.1:2369",
|
||||||
|
"cache-control": "no-cache, private, no-store, must-revalidate, max-stale=0, post-check=0, pre-check=0",
|
||||||
|
"content-length": StringMatching /\\\\d\\+/,
|
||||||
|
"content-type": "application/json; charset=utf-8",
|
||||||
|
"etag": StringMatching /\\(\\?:W\\\\/\\)\\?"\\(\\?:\\[ !#-\\\\x7E\\\\x80-\\\\xFF\\]\\*\\|\\\\r\\\\n\\[\\\\t \\]\\|\\\\\\\\\\.\\)\\*"/,
|
||||||
|
"vary": "Accept-Version, Origin, Accept-Encoding",
|
||||||
|
"x-powered-by": "Express",
|
||||||
|
}
|
||||||
|
`;
|
||||||
|
|
||||||
|
exports[`Activity Feed API Filter-based pagination Can do filter based pagination for one post 1: [body] 1`] = `
|
||||||
|
Object {
|
||||||
|
"events": Array [
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
"meta": Object {
|
||||||
|
"pagination": Object {
|
||||||
|
"limit": "10",
|
||||||
|
"next": null,
|
||||||
|
"page": null,
|
||||||
|
"pages": 2,
|
||||||
|
"prev": null,
|
||||||
|
"total": 13,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
`;
|
||||||
|
|
||||||
|
exports[`Activity Feed API Filter-based pagination Can do filter based pagination for one post 2: [headers] 1`] = `
|
||||||
|
Object {
|
||||||
|
"access-control-allow-origin": "http://127.0.0.1:2369",
|
||||||
|
"cache-control": "no-cache, private, no-store, must-revalidate, max-stale=0, post-check=0, pre-check=0",
|
||||||
|
"content-length": StringMatching /\\\\d\\+/,
|
||||||
|
"content-type": "application/json; charset=utf-8",
|
||||||
|
"etag": StringMatching /\\(\\?:W\\\\/\\)\\?"\\(\\?:\\[ !#-\\\\x7E\\\\x80-\\\\xFF\\]\\*\\|\\\\r\\\\n\\[\\\\t \\]\\|\\\\\\\\\\.\\)\\*"/,
|
||||||
|
"vary": "Accept-Version, Origin, Accept-Encoding",
|
||||||
|
"x-powered-by": "Express",
|
||||||
|
}
|
||||||
|
`;
|
||||||
|
|
||||||
|
exports[`Activity Feed API Filter-based pagination Can do filter based pagination for one post 3: [body] 1`] = `
|
||||||
|
Object {
|
||||||
|
"events": Array [
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"data": Any<Object>,
|
||||||
|
"type": Any<String>,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
"meta": Object {
|
||||||
|
"pagination": Object {
|
||||||
|
"limit": "10",
|
||||||
|
"next": null,
|
||||||
|
"page": null,
|
||||||
|
"pages": 1,
|
||||||
|
"prev": null,
|
||||||
|
"total": 3,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
`;
|
||||||
|
|
||||||
|
exports[`Activity Feed API Filter-based pagination Can do filter based pagination for one post 4: [headers] 1`] = `
|
||||||
|
Object {
|
||||||
|
"access-control-allow-origin": "http://127.0.0.1:2369",
|
||||||
|
"cache-control": "no-cache, private, no-store, must-revalidate, max-stale=0, post-check=0, pre-check=0",
|
||||||
|
"content-length": StringMatching /\\\\d\\+/,
|
||||||
|
"content-type": "application/json; charset=utf-8",
|
||||||
|
"etag": StringMatching /\\(\\?:W\\\\/\\)\\?"\\(\\?:\\[ !#-\\\\x7E\\\\x80-\\\\xFF\\]\\*\\|\\\\r\\\\n\\[\\\\t \\]\\|\\\\\\\\\\.\\)\\*"/,
|
||||||
|
"vary": "Accept-Version, Origin, Accept-Encoding",
|
||||||
|
"x-powered-by": "Express",
|
||||||
|
}
|
||||||
|
`;
|
||||||
|
|
||||||
exports[`Activity Feed API Returns click events in activity feed 1: [body] 1`] = `
|
exports[`Activity Feed API Returns click events in activity feed 1: [body] 1`] = `
|
||||||
Object {
|
Object {
|
||||||
"events": Array [
|
"events": Array [
|
||||||
|
@ -7,11 +7,10 @@ const moment = require('moment');
|
|||||||
|
|
||||||
let agent;
|
let agent;
|
||||||
|
|
||||||
async function testPagination(skippedTypes, postId, totalExpected) {
|
async function testPagination(skippedTypes, postId, totalExpected, limit) {
|
||||||
const postFilter = postId ? `+data.post_id:${postId}` : '';
|
const postFilter = postId ? `+data.post_id:${postId}` : '';
|
||||||
|
|
||||||
// To make the test cover more edge cases, we test different limit configurations
|
// To make the test cover more edge cases, we test different limit configurations
|
||||||
for (let limit = 1; limit <= totalExpected; limit++) {
|
|
||||||
const {body: firstPage} = await agent
|
const {body: firstPage} = await agent
|
||||||
.get(`/members/events?filter=${encodeURIComponent(`type:-[${skippedTypes.join(',')}]${postFilter}`)}&limit=${limit}`)
|
.get(`/members/events?filter=${encodeURIComponent(`type:-[${skippedTypes.join(',')}]${postFilter}`)}&limit=${limit}`)
|
||||||
.expectStatus(200)
|
.expectStatus(200)
|
||||||
@ -78,7 +77,6 @@ async function testPagination(skippedTypes, postId, totalExpected) {
|
|||||||
assert.equal(allEvents.filter(e => e.data.id === event.data.id).length, 1);
|
assert.equal(allEvents.filter(e => e.data.id === event.data.id).length, 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
describe('Activity Feed API', function () {
|
describe('Activity Feed API', function () {
|
||||||
before(async function () {
|
before(async function () {
|
||||||
@ -187,15 +185,13 @@ describe('Activity Feed API', function () {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
// Temporarily skip slow tests
|
describe('Filter-based pagination', function () {
|
||||||
// eslint-disable-next-line
|
|
||||||
describe.skip('Filter-based pagination', function () {
|
|
||||||
it('Can do filter based pagination for all posts', async function () {
|
it('Can do filter based pagination for all posts', async function () {
|
||||||
// There is an annoying restriction in the pagination. It doesn't work for mutliple email events at the same time because they have the same id (causes issues as we use id to deduplicate the created_at timestamp)
|
// There is an annoying restriction in the pagination. It doesn't work for mutliple email events at the same time because they have the same id (causes issues as we use id to deduplicate the created_at timestamp)
|
||||||
// If that is ever fixed (it is difficult) we can update this test to not use a filter
|
// If that is ever fixed (it is difficult) we can update this test to not use a filter
|
||||||
// Same for click_event and aggregated_click_event (use same id)
|
// Same for click_event and aggregated_click_event (use same id)
|
||||||
const skippedTypes = ['email_opened_event', 'email_failed_event', 'email_delivered_event', 'aggregated_click_event'];
|
const skippedTypes = ['email_opened_event', 'email_failed_event', 'email_delivered_event', 'aggregated_click_event'];
|
||||||
await testPagination(skippedTypes, null, 37);
|
await testPagination(skippedTypes, null, 37, 36);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('Can do filter based pagination for one post', async function () {
|
it('Can do filter based pagination for one post', async function () {
|
||||||
@ -206,7 +202,7 @@ describe('Activity Feed API', function () {
|
|||||||
// Same for click_event and aggregated_click_event (use same id)
|
// Same for click_event and aggregated_click_event (use same id)
|
||||||
const skippedTypes = ['email_opened_event', 'email_failed_event', 'email_delivered_event', 'aggregated_click_event'];
|
const skippedTypes = ['email_opened_event', 'email_failed_event', 'email_delivered_event', 'aggregated_click_event'];
|
||||||
|
|
||||||
await testPagination(skippedTypes, postId, 13);
|
await testPagination(skippedTypes, postId, 13, 10);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('Can do filter based pagination for aggregated clicks for one post', async function () {
|
it('Can do filter based pagination for aggregated clicks for one post', async function () {
|
||||||
@ -214,13 +210,13 @@ describe('Activity Feed API', function () {
|
|||||||
const postId = fixtureManager.get('posts', 0).id;
|
const postId = fixtureManager.get('posts', 0).id;
|
||||||
const skippedTypes = ['email_opened_event', 'email_failed_event', 'email_sent_event', 'click_event'];
|
const skippedTypes = ['email_opened_event', 'email_failed_event', 'email_sent_event', 'click_event'];
|
||||||
|
|
||||||
await testPagination(skippedTypes, postId, 9);
|
await testPagination(skippedTypes, postId, 9, 8);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('Can do filter based pagination for aggregated clicks for all posts', async function () {
|
it('Can do filter based pagination for aggregated clicks for all posts', async function () {
|
||||||
// Same as previous but with aggregated clicks instead of normal click events + email_delivered_events instead of sent events
|
// Same as previous but with aggregated clicks instead of normal click events + email_delivered_events instead of sent events
|
||||||
const skippedTypes = ['email_opened_event', 'email_failed_event', 'email_sent_event', 'click_event'];
|
const skippedTypes = ['email_opened_event', 'email_failed_event', 'email_sent_event', 'click_event'];
|
||||||
await testPagination(skippedTypes, null, 33);
|
await testPagination(skippedTypes, null, 33, 32);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user