FIX: Overwritten computed properties

This commit is contained in:
Robin Ward 2020-07-20 14:14:52 -04:00
parent 537cfb7ef6
commit ac9fa4a056

View File

@ -1,7 +1,12 @@
import EmberObject from "@ember/object"; import EmberObject from "@ember/object";
import { discourseModule, currentUser } from "helpers/qunit-helpers"; import { discourseModule, currentUser } from "helpers/qunit-helpers";
import AppEvents from "discourse/services/app-events"; import AppEvents from "discourse/services/app-events";
import Composer from "discourse/models/composer"; import {
EDIT,
REPLY,
CREATE_TOPIC,
PRIVATE_MESSAGE
} from "discourse/models/composer";
import Post from "discourse/models/post"; import Post from "discourse/models/post";
import createStore from "helpers/create-store"; import createStore from "helpers/create-store";
@ -50,11 +55,14 @@ QUnit.test("missingReplyCharacters", function(assert) {
expected, expected,
message message
) { ) {
const composer = createComposer({ let action = REPLY;
reply: val, if (isPM) {
creatingPrivateMessage: isPM, action = PRIVATE_MESSAGE;
creatingTopic: isFirstPost }
}); if (isFirstPost) {
action = CREATE_TOPIC;
}
const composer = createComposer({ reply: val, action });
assert.equal(composer.get("missingReplyCharacters"), expected, message); assert.equal(composer.get("missingReplyCharacters"), expected, message);
}; };
@ -81,10 +89,13 @@ QUnit.test("missingReplyCharacters", function(assert) {
); );
const link = "http://imgur.com/gallery/grxX8"; const link = "http://imgur.com/gallery/grxX8";
this.siteSettings.topic_featured_link_enabled = true;
this.siteSettings.topic_featured_link_allowed_category_ids = 12345;
const composer = createComposer({ const composer = createComposer({
canEditTopicFeaturedLink: true,
title: link, title: link,
categoryId: 12345,
featuredLink: link, featuredLink: link,
action: CREATE_TOPIC,
reply: link reply: link
}); });
@ -99,7 +110,7 @@ QUnit.test("missingTitleCharacters", function(assert) {
const missingTitleCharacters = function(val, isPM, expected, message) { const missingTitleCharacters = function(val, isPM, expected, message) {
const composer = createComposer({ const composer = createComposer({
title: val, title: val,
creatingPrivateMessage: isPM action: isPM ? PRIVATE_MESSAGE : REPLY
}); });
assert.equal(composer.get("missingTitleCharacters"), expected, message); assert.equal(composer.get("missingTitleCharacters"), expected, message);
}; };
@ -209,7 +220,7 @@ QUnit.test("Title length for regular topics", function(assert) {
QUnit.test("Title length for private messages", function(assert) { QUnit.test("Title length for private messages", function(assert) {
this.siteSettings.min_personal_message_title_length = 5; this.siteSettings.min_personal_message_title_length = 5;
this.siteSettings.max_topic_title_length = 10; this.siteSettings.max_topic_title_length = 10;
const composer = createComposer({ action: Composer.PRIVATE_MESSAGE }); const composer = createComposer({ action: PRIVATE_MESSAGE });
composer.set("title", "asdf"); composer.set("title", "asdf");
assert.ok(!composer.get("titleLengthValid"), "short titles are not valid"); assert.ok(!composer.get("titleLengthValid"), "short titles are not valid");
@ -234,7 +245,7 @@ QUnit.test("editingFirstPost", assert => {
assert.ok(!composer.get("editingFirstPost"), "it's false by default"); assert.ok(!composer.get("editingFirstPost"), "it's false by default");
const post = Post.create({ id: 123, post_number: 2 }); const post = Post.create({ id: 123, post_number: 2 });
composer.setProperties({ post: post, action: Composer.EDIT }); composer.setProperties({ post: post, action: EDIT });
assert.ok( assert.ok(
!composer.get("editingFirstPost"), !composer.get("editingFirstPost"),
"it's false when not editing the first post" "it's false when not editing the first post"
@ -266,7 +277,7 @@ QUnit.test("clearState", assert => {
QUnit.test("initial category when uncategorized is allowed", function(assert) { QUnit.test("initial category when uncategorized is allowed", function(assert) {
this.siteSettings.allow_uncategorized_topics = true; this.siteSettings.allow_uncategorized_topics = true;
const composer = openComposer({ const composer = openComposer({
action: "createTopic", action: CREATE_TOPIC,
draftKey: "asfd", draftKey: "asfd",
draftSequence: 1 draftSequence: 1
}); });
@ -278,7 +289,7 @@ QUnit.test("initial category when uncategorized is not allowed", function(
) { ) {
this.siteSettings.allow_uncategorized_topics = false; this.siteSettings.allow_uncategorized_topics = false;
const composer = openComposer({ const composer = openComposer({
action: "createTopic", action: CREATE_TOPIC,
draftKey: "asfd", draftKey: "asfd",
draftSequence: 1 draftSequence: 1
}); });
@ -293,7 +304,7 @@ QUnit.test("open with a quote", assert => {
'[quote="neil, post:5, topic:413"]\nSimmer down you two.\n[/quote]'; '[quote="neil, post:5, topic:413"]\nSimmer down you two.\n[/quote]';
const newComposer = function() { const newComposer = function() {
return openComposer({ return openComposer({
action: Composer.REPLY, action: REPLY,
draftKey: "asfd", draftKey: "asfd",
draftSequence: 1, draftSequence: 1,
quote: quote quote: quote
@ -322,7 +333,7 @@ QUnit.test("Title length for static page topics as admin", function(assert) {
post_number: 2, post_number: 2,
static_doc: true static_doc: true
}); });
composer.setProperties({ post: post, action: Composer.EDIT }); composer.setProperties({ post: post, action: EDIT });
composer.set("title", "asdf"); composer.set("title", "asdf");
assert.ok(composer.get("titleLengthValid"), "admins can use short titles"); assert.ok(composer.get("titleLengthValid"), "admins can use short titles");
@ -341,14 +352,14 @@ QUnit.test("Title length for static page topics as admin", function(assert) {
}); });
QUnit.test("title placeholder depends on what you're doing", function(assert) { QUnit.test("title placeholder depends on what you're doing", function(assert) {
let composer = createComposer({ action: Composer.CREATE_TOPIC }); let composer = createComposer({ action: CREATE_TOPIC });
assert.equal( assert.equal(
composer.get("titlePlaceholder"), composer.get("titlePlaceholder"),
"composer.title_placeholder", "composer.title_placeholder",
"placeholder for normal topic" "placeholder for normal topic"
); );
composer = createComposer({ action: Composer.PRIVATE_MESSAGE }); composer = createComposer({ action: PRIVATE_MESSAGE });
assert.equal( assert.equal(
composer.get("titlePlaceholder"), composer.get("titlePlaceholder"),
"composer.title_placeholder", "composer.title_placeholder",
@ -357,14 +368,14 @@ QUnit.test("title placeholder depends on what you're doing", function(assert) {
this.siteSettings.topic_featured_link_enabled = true; this.siteSettings.topic_featured_link_enabled = true;
composer = createComposer({ action: Composer.CREATE_TOPIC }); composer = createComposer({ action: CREATE_TOPIC });
assert.equal( assert.equal(
composer.get("titlePlaceholder"), composer.get("titlePlaceholder"),
"composer.title_or_link_placeholder", "composer.title_or_link_placeholder",
"placeholder invites you to paste a link" "placeholder invites you to paste a link"
); );
composer = createComposer({ action: Composer.PRIVATE_MESSAGE }); composer = createComposer({ action: PRIVATE_MESSAGE });
assert.equal( assert.equal(
composer.get("titlePlaceholder"), composer.get("titlePlaceholder"),
"composer.title_placeholder", "composer.title_placeholder",
@ -375,7 +386,7 @@ QUnit.test("title placeholder depends on what you're doing", function(assert) {
QUnit.test("allows featured link before choosing a category", function(assert) { QUnit.test("allows featured link before choosing a category", function(assert) {
this.siteSettings.topic_featured_link_enabled = true; this.siteSettings.topic_featured_link_enabled = true;
this.siteSettings.allow_uncategorized_topics = false; this.siteSettings.allow_uncategorized_topics = false;
let composer = createComposer({ action: Composer.CREATE_TOPIC }); let composer = createComposer({ action: CREATE_TOPIC });
assert.equal( assert.equal(
composer.get("titlePlaceholder"), composer.get("titlePlaceholder"),
"composer.title_or_link_placeholder", "composer.title_or_link_placeholder",