FIX: polls acceptance tests

This commit is contained in:
Régis Hanol 2019-02-27 19:16:24 +01:00
parent 0a708ba064
commit 6b006c383b
3 changed files with 368 additions and 1759 deletions

View File

@ -1,6 +1,5 @@
import { acceptance } from "helpers/qunit-helpers";
import { clearPopupMenuOptionsCallback } from "discourse/controllers/composer";
import Fixtures from "fixtures/poll";
acceptance("Rendering polls - mobile", {
loggedIn: true,
@ -12,32 +11,7 @@ acceptance("Rendering polls - mobile", {
});
test("Public number poll", async assert => {
// prettier-ignore
server.get("/t/13.json", () => { // eslint-disable-line no-undef
return [200, { "Content-Type": "application/json" }, Fixtures["t/13.json"]];
});
// prettier-ignore
server.get("/polls/voters.json", request => { // eslint-disable-line no-undef
let body = {};
if (
request.queryParams.post_id === "16" &&
request.queryParams.poll_name === "poll" &&
request.queryParams.page === "1"
) {
body = Fixtures["/polls/voters.json?page=1"];
} else if (
request.queryParams.post_id === "16" &&
request.queryParams.poll_name === "poll"
) {
body = Fixtures["/polls/voters.json"];
}
return [200, { "Content-Type": "application/json" }, body];
});
await visit("/t/this-is-a-topic-for-testing-number-poll/13");
await visit("/t/-/13");
const polls = find(".poll");
assert.equal(polls.length, 1, "it should render the poll correctly");
@ -55,6 +29,20 @@ test("Public number poll", async assert => {
"user URL exists"
);
// eslint-disable-next-line
server.get("/polls/voters.json", () => {
const body = {
voters: Array.from(new Array(10), (_, i) => ({
id: 500 + i,
username: `bruce${500 + i}`,
avatar_template: "/images/avatar.png",
name: "Bruce Wayne"
}))
};
return [200, { "Content-Type": "application/json" }, body];
});
await click(".poll-voters-toggle-expand:first a");
assert.equal(

View File

@ -1,10 +1,9 @@
export default {
"t/13.json": {
"/t/13.json": {
post_stream: {
posts: [
{
id: 16,
name: null,
username: "tgx",
avatar_template: "/images/avatar.png",
created_at: "2017-01-31T09:11:11.281Z",
@ -14,27 +13,19 @@ export default {
post_type: 1,
updated_at: "2017-01-31T09:11:11.281Z",
reply_count: 0,
reply_to_post_number: null,
quote_count: 0,
avg_time: null,
incoming_link_count: 0,
reads: 1,
score: 0,
yours: true,
topic_id: 13,
topic_slug: "this-is-a-topic-for-testing-number-poll",
display_username: null,
primary_group_name: null,
primary_group_flair_url: null,
primary_group_flair_bg_color: null,
primary_group_flair_color: null,
version: 1,
can_edit: true,
can_delete: false,
can_recover: true,
can_wiki: true,
read: true,
user_title: null,
actions_summary: [
{ id: 3, can_act: true },
{ id: 4, can_act: true },
@ -47,11 +38,8 @@ export default {
staff: true,
user_id: 1,
hidden: false,
hidden_reason_id: null,
trust_level: 4,
deleted_at: null,
user_deleted: false,
edit_reason: null,
can_view_edit_history: true,
wiki: false,
polls: [
@ -165,7 +153,13 @@ export default {
min: "1",
max: "20",
step: "1",
public: "true"
public: "true",
preloaded_voters: Array.from(new Array(25), (_, i) => ({
id: 400 + i,
username: `bruce${400 + i}`,
avatar_template: "/images/avatar.png",
name: "Bruce Wayne"
}))
}
]
}
@ -191,20 +185,13 @@ export default {
slug: "this-is-a-topic-for-testing-number-poll",
category_id: 1,
word_count: 12,
deleted_at: null,
user_id: 1,
draft: null,
draft_key: "topic_13",
draft_sequence: 1,
posted: true,
unpinned: null,
pinned_globally: false,
pinned: false,
pinned_at: null,
pinned_until: null,
details: {
auto_close_at: null,
auto_close_hours: null,
auto_close_based_on_last_post: false,
created_by: {
id: 1,
@ -221,139 +208,10 @@ export default {
id: 1,
username: "tgx",
avatar_template: "/images/avatar.png",
post_count: 1,
primary_group_name: null,
primary_group_flair_url: null,
primary_group_flair_color: null,
primary_group_flair_bg_color: null
}
],
suggested_topics: [
{
id: 8,
title: "Welcome to Discourse",
fancy_title: "Welcome to Discourse",
slug: "welcome-to-discourse",
posts_count: 1,
reply_count: 0,
highest_post_number: 1,
image_url: null,
created_at: "2017-01-31T07:53:45.363Z",
last_posted_at: "2017-01-31T07:53:45.439Z",
bumped: true,
bumped_at: "2017-01-31T07:53:45.439Z",
unseen: false,
pinned: true,
unpinned: null,
excerpt:
"The first paragraph of this pinned topic will be visible as a welcome message to all new visitors on your homepage. It's important! \n\nEdit this into a brief description of your community: \n\n\nWho is it for?\nWhat can they …",
visible: true,
closed: false,
archived: false,
bookmarked: null,
liked: null,
archetype: "regular",
like_count: 0,
views: 0,
category_id: 1,
featured_link: null,
posters: [
{
extras: "latest single",
description: "Original Poster, Most Recent Poster",
user: {
id: -1,
username: "system",
avatar_template: "/images/avatar.png"
}
}
]
},
{
id: 11,
title: "This is a test post to try out posts",
fancy_title: "This is a test post to try out posts",
slug: "this-is-a-test-post-to-try-out-posts",
posts_count: 1,
reply_count: 0,
highest_post_number: 1,
image_url: null,
created_at: "2017-01-31T07:55:58.407Z",
last_posted_at: "2017-01-31T07:55:58.634Z",
bumped: true,
bumped_at: "2017-01-31T07:55:58.634Z",
unseen: false,
last_read_post_number: 1,
unread: 0,
new_posts: 0,
pinned: false,
unpinned: null,
visible: true,
closed: false,
archived: false,
notification_level: 3,
bookmarked: false,
liked: false,
archetype: "regular",
like_count: 0,
views: 1,
category_id: 1,
featured_link: null,
posters: [
{
extras: "latest single",
description: "Original Poster, Most Recent Poster",
user: {
id: 1,
username: "tgx",
avatar_template: "/images/avatar.png"
}
}
]
},
{
id: 12,
title: "This is a topic created for testing",
fancy_title: "This is a topic created for testing",
slug: "this-is-a-topic-created-for-testing",
posts_count: 1,
reply_count: 0,
highest_post_number: 1,
image_url: null,
created_at: "2017-01-31T08:39:06.094Z",
last_posted_at: "2017-01-31T08:39:06.237Z",
bumped: true,
bumped_at: "2017-01-31T09:10:46.528Z",
unseen: false,
last_read_post_number: 1,
unread: 0,
new_posts: 0,
pinned: false,
unpinned: null,
visible: true,
closed: false,
archived: false,
notification_level: 3,
bookmarked: false,
liked: false,
archetype: "regular",
like_count: 0,
views: 1,
category_id: 1,
featured_link: null,
posters: [
{
extras: "latest single",
description: "Original Poster, Most Recent Poster",
user: {
id: 1,
username: "tgx",
avatar_template: "/images/avatar.png"
}
}
]
post_count: 1
}
],
suggested_topics: [],
notification_level: 3,
notifications_reason_id: 1,
can_move_posts: true,
@ -369,7 +227,6 @@ export default {
highest_post_number: 1,
last_read_post_number: 1,
last_read_post_id: 16,
deleted_by: null,
has_deleted: false,
actions_summary: [
{ id: 4, count: 0, hidden: false, can_act: true },
@ -377,260 +234,315 @@ export default {
{ id: 8, count: 0, hidden: false, can_act: true }
],
chunk_size: 20,
bookmarked: false,
featured_link: null
bookmarked: false
},
"/polls/voters.json": {
voters: [
{
id: 402,
username: "bruce400",
avatar_template: "/images/avatar.png",
name: "Bruce Wayne",
title: null
"/t/14.json": {
post_stream: {
posts: [
{
id: 17,
username: "tgx",
avatar_template: "/images/avatar.png",
created_at: "2017-01-31T09:11:11.281Z",
cooked:
'<div class="poll" data-poll-status="open" data-poll-name="poll" data-poll-type="multiple" data-poll-min="1" data-poll-max="3" data-poll-public="true">\n<div>\n<div class="poll-container"><ul>\n<li data-poll-option-id="4d8a15e3cc35750f016ce15a43937620">1</li>\n<li data-poll-option-id="cd314db7dfbac2b10687b6f39abfdf41">2</li>\n<li data-poll-option-id="68b434ff88aeae7054e42cd05a4d9056">3</li>\n</ul></div>\n<div class="poll-info">\n<p><span class="info-number">0</span><span class="info-text">voters</span></p>\n<p>Choose up to <strong>3</strong> options</p>\n<p>Votes are public.</p>\n</div>\n</div>\n<div class="poll-buttons">\n<a title="Cast your votes">Vote now!</a><a title="Display the poll results">Show results</a>\n</div>\n</div>',
post_number: 1,
post_type: 1,
updated_at: "2017-01-31T09:11:11.281Z",
reply_count: 0,
quote_count: 0,
incoming_link_count: 0,
reads: 1,
score: 0,
yours: true,
topic_id: 14,
topic_slug: "topic-with-a-public-poll",
version: 1,
can_edit: true,
can_delete: false,
can_recover: true,
can_wiki: true,
read: true,
actions_summary: [
{ id: 3, can_act: true },
{ id: 4, can_act: true },
{ id: 5, hidden: true, can_act: true },
{ id: 7, can_act: true },
{ id: 8, can_act: true }
],
moderator: false,
admin: true,
staff: true,
user_id: 1,
hidden: false,
trust_level: 4,
user_deleted: false,
can_view_edit_history: true,
wiki: false,
polls: [
{
options: [
{
id: "4d8a15e3cc35750f016ce15a43937620",
html: "1",
votes: 29
},
{
id: "cd314db7dfbac2b10687b6f39abfdf41",
html: "2",
votes: 29
},
{
id: "68b434ff88aeae7054e42cd05a4d9056",
html: "3",
votes: 42
}
],
voters: 100,
status: "open",
name: "poll",
type: "multiple",
min: "1",
max: "3",
public: "true",
preloaded_voters: {
"68b434ff88aeae7054e42cd05a4d9056": Array.from(
new Array(25),
(_, i) => ({
id: 1000 + i,
name: "Bruce Wayne",
username: `bruce${1000 + i}`,
avatar_template: "/images/avatar.png"
})
)
}
}
]
}
],
stream: [17]
},
timeline_lookup: [[1, 0]],
id: 14,
title: "Topic with a public poll",
fancy_title: "Topic with a public poll",
posts_count: 1,
created_at: "2017-01-31T09:11:11.161Z",
views: 1,
reply_count: 0,
participant_count: 1,
like_count: 0,
last_posted_at: "2017-01-31T09:11:11.281Z",
visible: true,
closed: false,
archived: false,
has_summary: false,
archetype: "regular",
slug: "topic-with-a-public-poll",
category_id: 1,
word_count: 12,
user_id: 1,
draft_key: "topic_14",
draft_sequence: 1,
posted: true,
pinned_globally: false,
pinned: false,
details: {
auto_close_based_on_last_post: false,
created_by: {
id: 1,
username: "tgx",
avatar_template: "/images/avatar.png"
},
{
id: 403,
username: "bruce401",
avatar_template: "/images/avatar.png",
name: "Bruce Wayne",
title: null
last_poster: {
id: 1,
username: "tgx",
avatar_template: "/images/avatar.png"
},
{
id: 404,
username: "bruce402",
avatar_template: "/images/avatar.png",
name: "Bruce Wayne",
title: null
},
{
id: 405,
username: "bruce403",
avatar_template: "/images/avatar.png",
name: "Bruce Wayne",
title: null
},
{
id: 406,
username: "bruce404",
avatar_template: "/images/avatar.png",
name: "Bruce Wayne",
title: null
},
{
id: 407,
username: "bruce405",
avatar_template: "/images/avatar.png",
name: "Bruce Wayne",
title: null
},
{
id: 408,
username: "bruce406",
avatar_template: "/images/avatar.png",
name: "Bruce Wayne",
title: null
},
{
id: 409,
username: "bruce407",
avatar_template: "/images/avatar.png",
name: "Bruce Wayne",
title: null
},
{
id: 410,
username: "bruce408",
avatar_template: "/images/avatar.png",
name: "Bruce Wayne",
title: null
},
{
id: 411,
username: "bruce409",
avatar_template: "/images/avatar.png",
name: "Bruce Wayne",
title: null
},
{
id: 412,
username: "bruce410",
avatar_template: "/images/avatar.png",
name: "Bruce Wayne",
title: null
},
{
id: 413,
username: "bruce411",
avatar_template: "/images/avatar.png",
name: "Bruce Wayne",
title: null
},
{
id: 414,
username: "bruce412",
avatar_template: "/images/avatar.png",
name: "Bruce Wayne",
title: null
},
{
id: 415,
username: "bruce413",
avatar_template: "/images/avatar.png",
name: "Bruce Wayne",
title: null
},
{
id: 416,
username: "bruce414",
avatar_template: "/images/avatar.png",
name: "Bruce Wayne",
title: null
},
{
id: 417,
username: "bruce415",
avatar_template: "/images/avatar.png",
name: "Bruce Wayne",
title: null
},
{
id: 419,
username: "bruce417",
avatar_template: "/images/avatar.png",
name: "Bruce Wayne",
title: null
},
{
id: 421,
username: "bruce419",
avatar_template: "/images/avatar.png",
name: "Bruce Wayne",
title: null
},
{
id: 422,
username: "bruce420",
avatar_template: "/images/avatar.png",
name: "Bruce Wayne",
title: null
},
{
id: 424,
username: "bruce422",
avatar_template: "/images/avatar.png",
name: "Bruce Wayne",
title: null
},
{
id: 425,
username: "bruce423",
avatar_template: "/images/avatar.png",
name: "Bruce Wayne",
title: null
},
{
id: 427,
username: "bruce425",
avatar_template: "/images/avatar.png",
name: "Bruce Wayne",
title: null
},
{
id: 430,
username: "bruce428",
avatar_template: "/images/avatar.png",
name: "Bruce Wayne",
title: null
},
{
id: 431,
username: "bruce429",
avatar_template: "/images/avatar.png",
name: "Bruce Wayne",
title: null
},
{
id: 435,
username: "bruce433",
avatar_template: "/images/avatar.png",
name: "Bruce Wayne",
title: null
}
]
participants: [
{
id: 1,
username: "tgx",
avatar_template: "/images/avatar.png",
post_count: 1
}
],
suggested_topics: [],
notification_level: 3,
notifications_reason_id: 1,
can_move_posts: true,
can_edit: true,
can_delete: true,
can_recover: true,
can_remove_allowed_users: true,
can_invite_to: true,
can_create_post: true,
can_reply_as_new_topic: true,
can_flag_topic: true
},
highest_post_number: 1,
last_read_post_number: 1,
last_read_post_id: 17,
has_deleted: false,
actions_summary: [
{ id: 4, count: 0, hidden: false, can_act: true },
{ id: 7, count: 0, hidden: false, can_act: true },
{ id: 8, count: 0, hidden: false, can_act: true }
],
chunk_size: 20,
bookmarked: false
},
"/polls/voters.json?page=1": {
voters: [
{
id: 418,
username: "bruce416",
avatar_template: "/images/avatar.png",
name: "Bruce Wayne",
title: null
"/t/15.json": {
post_stream: {
posts: [
{
id: 18,
username: "tgx",
avatar_template: "/images/avatar.png",
created_at: "2017-01-31T09:11:11.281Z",
cooked:
'<div class="poll" data-poll-status="open" data-poll-name="poll">\n<div>\n<div class="poll-container"><ul>\n<li data-poll-option-id="57ddd734344eb7436d64a7d68a0df444">test</li>\n<li data-poll-option-id="b5b78d79ab5b5d75d4d33d8b87f5d2aa">haha</li>\n</ul></div>\n<div class="poll-info"><p><span class="info-number">0</span><span class="info-text">voters</span></p></div>\n</div>\n<div class="poll-buttons"><a title="Display the poll results">Show results</a></div>\n</div>\n\n<div class="poll" data-poll-status="open" data-poll-name="test">\n<div>\n<div class="poll-container"><ul>\n<li data-poll-option-id="c26ad90783b0d80936e5fdb292b7963c">donkey</li>\n<li data-poll-option-id="99f2b9ac452ba73b115fcf3556e6d2d4">kong</li>\n</ul></div>\n<div class="poll-info"><p><span class="info-number">0</span><span class="info-text">voters</span></p></div>\n</div>\n<div class="poll-buttons"><a title="Display the poll results">Show results</a></div>\n</div>',
post_number: 1,
post_type: 1,
updated_at: "2017-01-31T09:11:11.281Z",
reply_count: 0,
quote_count: 0,
incoming_link_count: 0,
reads: 1,
score: 0,
yours: true,
topic_id: 15,
topic_slug: "topic-with-multiple-polls",
version: 1,
can_edit: true,
can_delete: false,
can_recover: true,
can_wiki: true,
read: true,
actions_summary: [
{ id: 3, can_act: true },
{ id: 4, can_act: true },
{ id: 5, hidden: true, can_act: true },
{ id: 7, can_act: true },
{ id: 8, can_act: true }
],
moderator: false,
admin: true,
staff: true,
user_id: 1,
hidden: false,
trust_level: 4,
user_deleted: false,
can_view_edit_history: true,
wiki: false,
polls: [
{
options: [
{
id: "57ddd734344eb7436d64a7d68a0df444",
html: "test",
votes: 0
},
{
id: "b5b78d79ab5b5d75d4d33d8b87f5d2aa",
html: "haha",
votes: 0
}
],
voters: 2,
status: "open",
name: "poll"
},
{
options: [
{
id: "c26ad90783b0d80936e5fdb292b7963c",
html: "donkey",
votes: 0
},
{
id: "99f2b9ac452ba73b115fcf3556e6d2d4",
html: "kong",
votes: 0
}
],
voters: 3,
status: "open",
name: "test"
}
]
}
],
stream: [18]
},
timeline_lookup: [[1, 0]],
id: 15,
title: "Topic with multiple polls",
fancy_title: "Topic with multiple polls",
posts_count: 1,
created_at: "2017-01-31T09:11:11.161Z",
views: 1,
reply_count: 0,
participant_count: 1,
like_count: 0,
last_posted_at: "2017-01-31T09:11:11.281Z",
visible: true,
closed: false,
archived: false,
has_summary: false,
archetype: "regular",
slug: "topic-with-multiple-polls",
category_id: 1,
word_count: 12,
user_id: 1,
draft_key: "topic_15",
draft_sequence: 1,
posted: true,
pinned_globally: false,
pinned: false,
details: {
auto_close_based_on_last_post: false,
created_by: {
id: 1,
username: "tgx",
avatar_template: "/images/avatar.png"
},
{
id: 420,
username: "bruce418",
avatar_template: "/images/avatar.png",
name: "Bruce Wayne",
title: null
last_poster: {
id: 1,
username: "tgx",
avatar_template: "/images/avatar.png"
},
{
id: 423,
username: "bruce421",
avatar_template: "/images/avatar.png",
name: "Bruce Wayne",
title: null
},
{
id: 426,
username: "bruce424",
avatar_template: "/images/avatar.png",
name: "Bruce Wayne",
title: null
},
{
id: 428,
username: "bruce426",
avatar_template: "/images/avatar.png",
name: "Bruce Wayne",
title: null
},
{
id: 429,
username: "bruce427",
avatar_template: "/images/avatar.png",
name: "Bruce Wayne",
title: null
},
{
id: 432,
username: "bruce430",
avatar_template: "/images/avatar.png",
name: "Bruce Wayne",
title: null
},
{
id: 433,
username: "bruce431",
avatar_template: "/images/avatar.png",
name: "Bruce Wayne",
title: null
},
{
id: 434,
username: "bruce432",
avatar_template: "/images/avatar.png",
name: "Bruce Wayne",
title: null
},
{
id: 436,
username: "bruce434",
avatar_template: "/images/avatar.png",
name: "Bruce Wayne",
title: null
}
]
participants: [
{
id: 1,
username: "tgx",
avatar_template: "/images/avatar.png",
post_count: 1
}
],
suggested_topics: [],
notification_level: 3,
notifications_reason_id: 1,
can_move_posts: true,
can_edit: true,
can_delete: true,
can_recover: true,
can_remove_allowed_users: true,
can_invite_to: true,
can_create_post: true,
can_reply_as_new_topic: true,
can_flag_topic: true
},
highest_post_number: 1,
last_read_post_number: 1,
last_read_post_id: 16,
has_deleted: false,
actions_summary: [
{ id: 4, count: 0, hidden: false, can_act: true },
{ id: 7, count: 0, hidden: false, can_act: true },
{ id: 8, count: 0, hidden: false, can_act: true }
],
chunk_size: 20,
bookmarked: false
}
};