This repository has been archived on 2023-03-18. You can view files and clone it, but cannot push or open issues or pull requests.
osr-discourse-src/app/assets/javascripts/discourse/tests/acceptance/share-topic-test.js
Bianca Nenciu 08a1f41582
FEATURE: Replace share-popup with share-topic (#16108)
share-topic modal is used everywhere expect when clicking on the top
right corner of the post. This changes standardize on share-topic modal
and add the missing features from share-popup.
2022-03-15 21:27:18 +02:00

96 lines
2.7 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { click, visit } from "@ember/test-helpers";
import {
acceptance,
exists,
queryAll,
} from "discourse/tests/helpers/qunit-helpers";
import selectKit from "discourse/tests/helpers/select-kit-helper";
import { test } from "qunit";
acceptance("Share and Invite modal", function (needs) {
needs.user();
test("Topic footer button", async function (assert) {
await visit("/t/internationalization-localization/280");
assert.ok(
exists("#topic-footer-button-share-and-invite"),
"the button exists"
);
await click("#topic-footer-button-share-and-invite");
assert.ok(exists(".share-topic-modal"), "it shows the modal");
assert.ok(
queryAll("input.invite-link")
.val()
.includes("/t/internationalization-localization/280?u=eviltrout"),
"it shows the topic sharing url"
);
assert.ok(
exists(".link-share-actions .invite"),
"it shows the invite button"
);
});
test("Post date link", async function (assert) {
await visit("/t/short-topic-with-two-posts/54077");
await click("#post_2 .post-info.post-date a");
assert.ok(exists(".share-topic-modal"), "it shows the share modal");
});
test("Share topic in a restricted category", async function (assert) {
await visit("/t/topic-in-restricted-group/2481");
assert.ok(
exists("#topic-footer-button-share-and-invite"),
"the button exists"
);
await click("#topic-footer-button-share-and-invite");
assert.ok(exists(".share-topic-modal"), "it shows the modal");
assert.ok(
exists("#modal-alert.alert-warning"),
"it shows restricted warning"
);
});
});
acceptance("Share and Invite modal - mobile", function (needs) {
needs.user();
needs.mobileView();
test("Topic footer mobile button", async function (assert) {
await visit("/t/internationalization-localization/280");
assert.ok(
!exists("#topic-footer-button-share-and-invite"),
"the button doesnt exist"
);
const subject = selectKit(".topic-footer-mobile-dropdown");
await subject.expand();
await subject.selectRowByValue("share-and-invite");
assert.ok(exists(".share-topic-modal"), "it shows the modal");
});
});
acceptance("Share url with badges disabled - desktop", function (needs) {
needs.user();
needs.settings({ enable_badges: false });
test("topic footer button - badges disabled - desktop", async function (assert) {
await visit("/t/internationalization-localization/280");
await click("#topic-footer-button-share-and-invite");
assert.notOk(
queryAll("input.invite-link").val().includes("?u=eviltrout"),
"it doesn't add the username param when badges are disabled"
);
});
});