2020-05-14 22:04:08 +08:00
import I18n from "I18n" ;
2019-06-06 16:47:10 +08:00
import selectKit from "helpers/select-kit-helper" ;
2019-06-14 20:54:20 +08:00
import { acceptance , updateCurrentUser } from "helpers/qunit-helpers" ;
2018-05-24 01:57:12 +08:00
import { _clearSnapshots } from "select-kit/components/composer-actions" ;
2018-12-19 17:25:33 +08:00
import { toggleCheckDraftPopup } from "discourse/controllers/composer" ;
2020-02-04 23:59:56 +08:00
import Draft from "discourse/models/draft" ;
import { Promise } from "rsvp" ;
2018-02-01 23:42:56 +08:00
acceptance ( "Composer Actions" , {
loggedIn : true ,
settings : {
enable _whispers : true
2018-05-24 01:57:12 +08:00
} ,
2019-01-23 00:26:52 +08:00
site : {
can _tag _topics : true
2018-05-24 01:57:12 +08:00
}
2018-02-01 23:42:56 +08:00
} ) ;
2020-05-25 13:46:02 +08:00
QUnit . test (
"creating new topic and then reply_as_private_message keeps attributes" ,
async assert => {
await visit ( "/" ) ;
await click ( "button#create-topic" ) ;
await fillIn ( "#reply-title" , "this is the title" ) ;
await fillIn ( ".d-editor-input" , "this is the reply" ) ;
const composerActions = selectKit ( ".composer-actions" ) ;
await composerActions . expand ( ) ;
await composerActions . selectRowByValue ( "reply_as_private_message" ) ;
assert . ok ( find ( "#reply-title" ) . val ( ) , "this is the title" ) ;
assert . ok ( find ( ".d-editor-input" ) . val ( ) , "this is the reply" ) ;
}
) ;
2018-04-23 14:42:25 +08:00
QUnit . test ( "replying to post" , async assert => {
2018-02-01 23:42:56 +08:00
const composerActions = selectKit ( ".composer-actions" ) ;
2018-05-23 21:52:15 +08:00
await visit ( "/t/internationalization-localization/280" ) ;
await click ( "article#post_3 button.reply" ) ;
2018-07-30 04:51:32 +08:00
await composerActions . expand ( ) ;
2018-04-23 14:42:25 +08:00
assert . equal ( composerActions . rowByIndex ( 0 ) . value ( ) , "reply_as_new_topic" ) ;
assert . equal (
composerActions . rowByIndex ( 1 ) . value ( ) ,
"reply_as_private_message"
) ;
assert . equal ( composerActions . rowByIndex ( 2 ) . value ( ) , "reply_to_topic" ) ;
assert . equal ( composerActions . rowByIndex ( 3 ) . value ( ) , "toggle_whisper" ) ;
2018-08-10 08:48:30 +08:00
assert . equal ( composerActions . rowByIndex ( 4 ) . value ( ) , "toggle_topic_bump" ) ;
assert . equal ( composerActions . rowByIndex ( 5 ) . value ( ) , undefined ) ;
2018-02-01 23:42:56 +08:00
} ) ;
2018-05-23 08:16:23 +08:00
QUnit . test ( "replying to post - reply_as_private_message" , async assert => {
2018-02-01 23:42:56 +08:00
const composerActions = selectKit ( ".composer-actions" ) ;
2018-05-23 08:16:23 +08:00
await visit ( "/t/internationalization-localization/280" ) ;
await click ( "article#post_3 button.reply" ) ;
2018-02-01 23:42:56 +08:00
2018-07-30 04:51:32 +08:00
await composerActions . expand ( ) ;
await composerActions . selectRowByValue ( "reply_as_private_message" ) ;
2018-02-01 23:42:56 +08:00
2018-05-23 08:16:23 +08:00
assert . equal ( find ( ".users-input .item:eq(0)" ) . text ( ) , "codinghorror" ) ;
assert . ok (
find ( ".d-editor-input" )
. val ( )
. indexOf ( "Continuing the discussion" ) >= 0
) ;
2018-02-01 23:42:56 +08:00
} ) ;
2018-05-23 21:52:15 +08:00
QUnit . test ( "replying to post - reply_to_topic" , async assert => {
2018-02-01 23:42:56 +08:00
const composerActions = selectKit ( ".composer-actions" ) ;
2018-05-23 21:52:15 +08:00
await visit ( "/t/internationalization-localization/280" ) ;
await click ( "article#post_3 button.reply" ) ;
await fillIn (
".d-editor-input" ,
"test replying to topic when initially replied to post"
) ;
2018-02-01 23:42:56 +08:00
2018-07-30 04:51:32 +08:00
await composerActions . expand ( ) ;
await composerActions . selectRowByValue ( "reply_to_topic" ) ;
2018-05-22 11:56:11 +08:00
assert . equal (
find ( ".action-title .topic-link" )
. text ( )
. trim ( ) ,
"Internationalization / localization"
) ;
assert . equal (
find ( ".action-title .topic-link" ) . attr ( "href" ) ,
"/t/internationalization-localization/280"
) ;
assert . equal (
find ( ".d-editor-input" ) . val ( ) ,
"test replying to topic when initially replied to post"
2018-06-15 23:03:24 +08:00
) ;
2018-02-01 23:42:56 +08:00
} ) ;
2018-05-23 21:52:15 +08:00
QUnit . test ( "replying to post - toggle_whisper" , async assert => {
2018-02-01 23:42:56 +08:00
const composerActions = selectKit ( ".composer-actions" ) ;
2018-05-23 21:52:15 +08:00
await visit ( "/t/internationalization-localization/280" ) ;
await click ( "article#post_3 button.reply" ) ;
await fillIn (
".d-editor-input" ,
"test replying as whisper to topic when initially not a whisper"
) ;
2018-07-30 04:51:32 +08:00
await composerActions . expand ( ) ;
await composerActions . selectRowByValue ( "toggle_whisper" ) ;
2018-02-01 23:42:56 +08:00
2019-01-22 19:02:02 +08:00
assert . ok (
find ( ".composer-fields .whisper .d-icon-far-eye-slash" ) . length === 1
) ;
2018-02-01 23:42:56 +08:00
} ) ;
2018-05-23 21:52:15 +08:00
QUnit . test ( "replying to post - reply_as_new_topic" , async assert => {
2020-02-04 23:59:56 +08:00
sandbox
. stub ( Draft , "get" )
. returns ( Promise . resolve ( { draft : "" , draft _sequence : 0 } ) ) ;
2018-02-01 23:42:56 +08:00
const composerActions = selectKit ( ".composer-actions" ) ;
const categoryChooser = selectKit ( ".title-wrapper .category-chooser" ) ;
const categoryChooserReplyArea = selectKit ( ".reply-area .category-chooser" ) ;
2018-02-14 18:32:20 +08:00
const quote = "test replying as new topic when initially replied to post" ;
2018-02-01 23:42:56 +08:00
2018-05-23 21:52:15 +08:00
await visit ( "/t/internationalization-localization/280" ) ;
2019-01-22 19:02:02 +08:00
await click ( "#topic-title .d-icon-pencil-alt" ) ;
2018-07-30 04:51:32 +08:00
await categoryChooser . expand ( ) ;
await categoryChooser . selectRowByValue ( 4 ) ;
2018-05-23 21:52:15 +08:00
await click ( "#topic-title .submit-edit" ) ;
2018-02-01 23:42:56 +08:00
2018-05-23 21:52:15 +08:00
await click ( "article#post_3 button.reply" ) ;
await fillIn ( ".d-editor-input" , quote ) ;
2018-02-01 23:42:56 +08:00
2018-07-30 04:51:32 +08:00
await composerActions . expand ( ) ;
await composerActions . selectRowByValue ( "reply_as_new_topic" ) ;
2018-02-01 23:42:56 +08:00
2018-05-23 21:52:15 +08:00
assert . equal ( categoryChooserReplyArea . header ( ) . name ( ) , "faq" ) ;
assert . equal (
find ( ".action-title" )
. text ( )
. trim ( ) ,
I18n . t ( "topic.create_long" )
) ;
assert . ok (
find ( ".d-editor-input" )
. val ( )
. includes ( quote )
) ;
2020-02-04 23:59:56 +08:00
sandbox . restore ( ) ;
2018-02-08 18:46:55 +08:00
} ) ;
2020-02-04 23:59:56 +08:00
QUnit . test ( "reply_as_new_topic without a new_topic draft" , async assert => {
await visit ( "/t/internationalization-localization/280" ) ;
await click ( ".create.reply" ) ;
const composerActions = selectKit ( ".composer-actions" ) ;
await composerActions . expand ( ) ;
await composerActions . selectRowByValue ( "reply_as_new_topic" ) ;
assert . equal ( exists ( find ( ".bootbox" ) ) , false ) ;
2018-03-14 03:59:12 +08:00
} ) ;
2018-02-08 18:46:55 +08:00
2020-07-07 23:30:48 +08:00
QUnit . test ( "reply_as_new_group_message" , async assert => {
// eslint-disable-next-line
server . get ( "/t/130.json" , ( ) => {
return [
200 ,
{ "Content-Type" : "application/json" } ,
{
post _stream : {
posts : [
{
id : 133 ,
name : null ,
username : "bianca" ,
avatar _template :
"/letter_avatar_proxy/v4/letter/b/3be4f8/{size}.png" ,
created _at : "2020-07-05T09:28:36.371Z" ,
cooked :
"<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas a varius ipsum. Nunc euismod, metus non vulputate malesuada, ligula metus pharetra tortor, vel sodales arcu lacus sed mauris. Nam semper, orci vitae fringilla placerat, dui tellus convallis felis, ultricies laoreet sapien mi et metus. Mauris facilisis, mi fermentum rhoncus feugiat, dolor est vehicula leo, id porta leo ex non enim. In a ligula vel tellus commodo scelerisque non in ex. Pellentesque semper leo quam, nec varius est viverra eget. Donec vehicula sem et massa faucibus tempus.</p>" ,
post _number : 1 ,
post _type : 1 ,
updated _at : "2020-07-05T09:28:36.371Z" ,
reply _count : 0 ,
reply _to _post _number : null ,
quote _count : 0 ,
incoming _link _count : 0 ,
reads : 1 ,
readers _count : 0 ,
score : 0 ,
yours : true ,
topic _id : 130 ,
topic _slug : "lorem-ipsum-dolor-sit-amet" ,
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 : false ,
can _wiki : true ,
read : true ,
user _title : "Tester" ,
title _is _group : false ,
actions _summary : [
{
id : 3 ,
can _act : true
} ,
{
id : 4 ,
can _act : true
} ,
{
id : 8 ,
can _act : true
} ,
{
id : 7 ,
can _act : true
}
] ,
moderator : false ,
admin : true ,
staff : true ,
user _id : 1 ,
hidden : false ,
trust _level : 0 ,
deleted _at : null ,
user _deleted : false ,
edit _reason : null ,
can _view _edit _history : true ,
wiki : false ,
reviewable _id : 0 ,
reviewable _score _count : 0 ,
reviewable _score _pending _count : 0
}
] ,
stream : [ 133 ]
} ,
timeline _lookup : [ [ 1 , 0 ] ] ,
related _messages : [ ] ,
suggested _topics : [ ] ,
id : 130 ,
title : "Lorem ipsum dolor sit amet" ,
fancy _title : "Lorem ipsum dolor sit amet" ,
posts _count : 1 ,
created _at : "2020-07-05T09:28:36.260Z" ,
views : 1 ,
reply _count : 0 ,
like _count : 0 ,
last _posted _at : "2020-07-05T09:28:36.371Z" ,
visible : true ,
closed : false ,
archived : false ,
has _summary : false ,
archetype : "private_message" ,
slug : "lorem-ipsum-dolor-sit-amet" ,
category _id : null ,
word _count : 86 ,
deleted _at : null ,
user _id : 1 ,
featured _link : null ,
pinned _globally : false ,
pinned _at : null ,
pinned _until : null ,
image _url : null ,
draft : null ,
draft _key : "topic_130" ,
draft _sequence : 0 ,
posted : true ,
unpinned : null ,
pinned : false ,
current _post _number : 1 ,
highest _post _number : 1 ,
last _read _post _number : 1 ,
last _read _post _id : 133 ,
deleted _by : null ,
has _deleted : false ,
actions _summary : [
{
id : 4 ,
count : 0 ,
hidden : false ,
can _act : true
} ,
{
id : 8 ,
count : 0 ,
hidden : false ,
can _act : true
} ,
{
id : 7 ,
count : 0 ,
hidden : false ,
can _act : true
}
] ,
chunk _size : 20 ,
bookmarked : false ,
message _archived : false ,
topic _timer : null ,
private _topic _timer : null ,
message _bus _last _id : 5 ,
participant _count : 1 ,
pm _with _non _human _user : false ,
show _read _indicator : false ,
requested _group _name : null ,
thumbnails : null ,
tags _disable _ads : false ,
details : {
notification _level : 3 ,
notifications _reason _id : 1 ,
can _move _posts : true ,
can _edit : true ,
can _delete : true ,
can _remove _allowed _users : true ,
can _invite _to : true ,
can _invite _via _email : true ,
can _create _post : true ,
can _reply _as _new _topic : true ,
can _flag _topic : true ,
can _convert _topic : true ,
can _review _topic : true ,
can _remove _self _id : 1 ,
participants : [
{
id : 1 ,
username : "bianca" ,
name : null ,
avatar _template :
"/letter_avatar_proxy/v4/letter/b/3be4f8/{size}.png" ,
post _count : 1 ,
primary _group _name : null ,
primary _group _flair _url : null ,
primary _group _flair _color : null ,
primary _group _flair _bg _color : null
}
] ,
allowed _users : [
{
id : 7 ,
username : "foo" ,
name : null ,
avatar _template :
"/letter_avatar_proxy/v4/letter/f/b19c9b/{size}.png"
}
] ,
created _by : {
id : 1 ,
username : "bianca" ,
name : null ,
avatar _template :
"/letter_avatar_proxy/v4/letter/b/3be4f8/{size}.png"
} ,
last _poster : {
id : 1 ,
username : "bianca" ,
name : null ,
avatar _template :
"/letter_avatar_proxy/v4/letter/b/3be4f8/{size}.png"
} ,
allowed _groups : [
{
id : 43 ,
automatic : false ,
name : "foo_group" ,
user _count : 4 ,
mentionable _level : 0 ,
messageable _level : 99 ,
visibility _level : 0 ,
automatic _membership _email _domains : "" ,
primary _group : false ,
title : null ,
grant _trust _level : null ,
incoming _email : null ,
has _messages : true ,
flair _url : null ,
flair _bg _color : "" ,
flair _color : "" ,
bio _raw : null ,
bio _cooked : null ,
bio _excerpt : null ,
public _admission : false ,
public _exit : false ,
allow _membership _requests : false ,
full _name : null ,
default _notification _level : 3 ,
membership _request _template : null ,
members _visibility _level : 0 ,
can _see _members : true ,
publish _read _state : false
}
]
}
}
] ;
} ) ;
await visit ( "/t/lorem-ipsum-dolor-sit-amet/130" ) ;
await click ( ".create.reply" ) ;
const composerActions = selectKit ( ".composer-actions" ) ;
await composerActions . expand ( ) ;
await composerActions . selectRowByValue ( "reply_as_new_group_message" ) ;
const items = [ ] ;
find ( ".users-input .item" ) . each ( ( _ , item ) =>
items . push ( item . textContent . trim ( ) )
) ;
assert . deepEqual ( items , [ "foo" , "foo_group" ] ) ;
} ) ;
2018-05-24 00:25:58 +08:00
QUnit . test ( "hide component if no content" , async assert => {
2020-05-16 01:54:44 +08:00
await visit ( "/" ) ;
await click ( "button#create-topic" ) ;
2018-05-24 00:25:58 +08:00
2020-05-16 01:54:44 +08:00
const composerActions = selectKit ( ".composer-actions" ) ;
await composerActions . expand ( ) ;
await composerActions . selectRowByValue ( "reply_as_private_message" ) ;
2018-05-24 00:25:58 +08:00
assert . ok ( composerActions . el ( ) . hasClass ( "is-hidden" ) ) ;
2020-06-04 21:33:57 +08:00
assert . equal ( composerActions . el ( ) . children ( ) . length , 0 ) ;
2020-05-16 01:54:44 +08:00
await click ( "button#create-topic" ) ;
await composerActions . expand ( ) ;
assert . equal ( composerActions . rows ( ) . length , 2 ) ;
2018-05-24 00:25:58 +08:00
} ) ;
2018-05-23 21:52:15 +08:00
QUnit . test ( "interactions" , async assert => {
2018-02-08 18:46:55 +08:00
const composerActions = selectKit ( ".composer-actions" ) ;
const quote = "Life is like riding a bicycle." ;
2018-05-22 16:50:54 +08:00
await visit ( "/t/internationalization-localization/280" ) ;
await click ( "article#post_3 button.reply" ) ;
await fillIn ( ".d-editor-input" , quote ) ;
2018-07-30 04:51:32 +08:00
await composerActions . expand ( ) ;
await composerActions . selectRowByValue ( "reply_to_topic" ) ;
2018-02-08 18:46:55 +08:00
2018-05-22 16:50:54 +08:00
assert . equal (
find ( ".action-title" )
. text ( )
. trim ( ) ,
"Internationalization / localization"
) ;
assert . equal ( find ( ".d-editor-input" ) . val ( ) , quote ) ;
2018-02-08 18:46:55 +08:00
2018-07-30 04:51:32 +08:00
await composerActions . expand ( ) ;
2018-02-08 18:46:55 +08:00
2018-05-22 16:50:54 +08:00
assert . equal ( composerActions . rowByIndex ( 0 ) . value ( ) , "reply_as_new_topic" ) ;
assert . equal ( composerActions . rowByIndex ( 1 ) . value ( ) , "reply_to_post" ) ;
assert . equal (
composerActions . rowByIndex ( 2 ) . value ( ) ,
"reply_as_private_message"
) ;
assert . equal ( composerActions . rowByIndex ( 3 ) . value ( ) , "toggle_whisper" ) ;
2018-08-10 08:48:30 +08:00
assert . equal ( composerActions . rowByIndex ( 4 ) . value ( ) , "toggle_topic_bump" ) ;
assert . equal ( composerActions . rows ( ) . length , 5 ) ;
2018-02-08 18:46:55 +08:00
2018-07-30 04:51:32 +08:00
await composerActions . selectRowByValue ( "reply_to_post" ) ;
await composerActions . expand ( ) ;
2018-02-08 18:46:55 +08:00
2018-05-22 16:50:54 +08:00
assert . ok ( exists ( find ( ".action-title img.avatar" ) ) ) ;
assert . equal (
find ( ".action-title .user-link" )
. text ( )
. trim ( ) ,
"codinghorror"
) ;
assert . equal ( find ( ".d-editor-input" ) . val ( ) , quote ) ;
assert . equal ( composerActions . rowByIndex ( 0 ) . value ( ) , "reply_as_new_topic" ) ;
assert . equal (
composerActions . rowByIndex ( 1 ) . value ( ) ,
"reply_as_private_message"
) ;
assert . equal ( composerActions . rowByIndex ( 2 ) . value ( ) , "reply_to_topic" ) ;
assert . equal ( composerActions . rowByIndex ( 3 ) . value ( ) , "toggle_whisper" ) ;
2018-08-10 08:48:30 +08:00
assert . equal ( composerActions . rowByIndex ( 4 ) . value ( ) , "toggle_topic_bump" ) ;
assert . equal ( composerActions . rows ( ) . length , 5 ) ;
2018-02-08 18:46:55 +08:00
2018-07-30 04:51:32 +08:00
await composerActions . selectRowByValue ( "reply_as_new_topic" ) ;
await composerActions . expand ( ) ;
2018-02-08 18:46:55 +08:00
2018-05-22 16:50:54 +08:00
assert . equal (
find ( ".action-title" )
. text ( )
. trim ( ) ,
I18n . t ( "topic.create_long" )
) ;
assert . ok (
find ( ".d-editor-input" )
. val ( )
. includes ( quote )
2018-06-15 23:03:24 +08:00
) ;
2018-05-22 16:50:54 +08:00
assert . equal ( composerActions . rowByIndex ( 0 ) . value ( ) , "reply_to_post" ) ;
assert . equal (
composerActions . rowByIndex ( 1 ) . value ( ) ,
"reply_as_private_message"
) ;
assert . equal ( composerActions . rowByIndex ( 2 ) . value ( ) , "reply_to_topic" ) ;
assert . equal ( composerActions . rowByIndex ( 3 ) . value ( ) , "shared_draft" ) ;
2018-05-23 21:52:15 +08:00
assert . equal ( composerActions . rows ( ) . length , 4 ) ;
2018-02-08 18:46:55 +08:00
2018-07-30 04:51:32 +08:00
await composerActions . selectRowByValue ( "reply_as_private_message" ) ;
await composerActions . expand ( ) ;
2018-05-22 16:50:54 +08:00
assert . equal (
find ( ".action-title" )
. text ( )
. trim ( ) ,
I18n . t ( "topic.private_message" )
) ;
assert . ok (
find ( ".d-editor-input" )
. val ( )
. indexOf ( "Continuing the discussion" ) === 0
2018-06-15 23:03:24 +08:00
) ;
2018-05-22 16:50:54 +08:00
assert . equal ( composerActions . rowByIndex ( 0 ) . value ( ) , "reply_as_new_topic" ) ;
assert . equal ( composerActions . rowByIndex ( 1 ) . value ( ) , "reply_to_post" ) ;
assert . equal ( composerActions . rowByIndex ( 2 ) . value ( ) , "reply_to_topic" ) ;
2018-05-23 21:52:15 +08:00
assert . equal ( composerActions . rows ( ) . length , 3 ) ;
2018-02-01 23:42:56 +08:00
} ) ;
2018-08-10 08:48:30 +08:00
QUnit . test ( "replying to post - toggle_topic_bump" , async assert => {
const composerActions = selectKit ( ".composer-actions" ) ;
await visit ( "/t/internationalization-localization/280" ) ;
await click ( "article#post_3 button.reply" ) ;
assert . ok (
find ( ".composer-fields .no-bump" ) . length === 0 ,
"no-bump text is not visible"
) ;
await composerActions . expand ( ) ;
await composerActions . selectRowByValue ( "toggle_topic_bump" ) ;
2018-08-12 03:51:13 +08:00
assert . ok (
find ( ".composer-fields .no-bump" ) . length === 1 ,
"no-bump icon is visible"
2018-08-10 08:48:30 +08:00
) ;
await composerActions . expand ( ) ;
await composerActions . selectRowByValue ( "toggle_topic_bump" ) ;
assert . ok (
find ( ".composer-fields .no-bump" ) . length === 0 ,
2018-08-12 03:51:13 +08:00
"no-bump icon is not visible"
2018-08-10 08:48:30 +08:00
) ;
} ) ;
QUnit . test ( "replying to post as staff" , async assert => {
const composerActions = selectKit ( ".composer-actions" ) ;
2019-07-25 04:01:08 +08:00
updateCurrentUser ( { admin : true } ) ;
2018-08-10 08:48:30 +08:00
await visit ( "/t/internationalization-localization/280" ) ;
await click ( "article#post_3 button.reply" ) ;
await composerActions . expand ( ) ;
assert . equal ( composerActions . rows ( ) . length , 5 ) ;
assert . equal ( composerActions . rowByIndex ( 4 ) . value ( ) , "toggle_topic_bump" ) ;
} ) ;
2019-01-03 03:15:12 +08:00
QUnit . test ( "replying to post as TL3 user" , async assert => {
2018-08-10 08:48:30 +08:00
const composerActions = selectKit ( ".composer-actions" ) ;
2019-07-25 04:01:08 +08:00
updateCurrentUser ( { moderator : false , admin : false , trust _level : 3 } ) ;
2018-08-10 08:48:30 +08:00
await visit ( "/t/internationalization-localization/280" ) ;
await click ( "article#post_3 button.reply" ) ;
await composerActions . expand ( ) ;
assert . equal ( composerActions . rows ( ) . length , 3 ) ;
Array . from ( composerActions . rows ( ) ) . forEach ( row => {
assert . notEqual (
row . value ,
"toggle_topic_bump" ,
"toggle button is not visible"
) ;
} ) ;
} ) ;
2018-08-23 17:09:35 +08:00
2019-01-03 03:15:12 +08:00
QUnit . test ( "replying to post as TL4 user" , async assert => {
const composerActions = selectKit ( ".composer-actions" ) ;
2019-07-25 04:01:08 +08:00
updateCurrentUser ( { moderator : false , admin : false , trust _level : 4 } ) ;
2019-01-03 03:15:12 +08:00
await visit ( "/t/internationalization-localization/280" ) ;
await click ( "article#post_3 button.reply" ) ;
await composerActions . expand ( ) ;
assert . equal ( composerActions . rows ( ) . length , 4 ) ;
assert . equal ( composerActions . rowByIndex ( 3 ) . value ( ) , "toggle_topic_bump" ) ;
} ) ;
2018-08-23 17:09:35 +08:00
QUnit . test (
"replying to first post - reply_as_private_message" ,
async assert => {
const composerActions = selectKit ( ".composer-actions" ) ;
await visit ( "/t/internationalization-localization/280" ) ;
await click ( "article#post_1 button.reply" ) ;
await composerActions . expand ( ) ;
await composerActions . selectRowByValue ( "reply_as_private_message" ) ;
assert . equal ( find ( ".users-input .item:eq(0)" ) . text ( ) , "uwe_keim" ) ;
assert . ok (
find ( ".d-editor-input" )
. val ( )
. indexOf ( "Continuing the discussion" ) >= 0
) ;
}
) ;
2020-02-04 23:59:56 +08:00
2020-05-14 13:56:45 +08:00
QUnit . test ( "editing post" , async assert => {
const composerActions = selectKit ( ".composer-actions" ) ;
await visit ( "/t/internationalization-localization/280" ) ;
await click ( "article#post_1 button.show-more-actions" ) ;
await click ( "article#post_1 button.edit" ) ;
await composerActions . expand ( ) ;
assert . equal ( composerActions . rows ( ) . length , 1 ) ;
assert . equal ( composerActions . rowByIndex ( 0 ) . value ( ) , "reply_to_post" ) ;
} ) ;
2020-02-04 23:59:56 +08:00
acceptance ( "Composer Actions With New Topic Draft" , {
loggedIn : true ,
settings : {
enable _whispers : true
} ,
site : {
can _tag _topics : true
} ,
beforeEach ( ) {
_clearSnapshots ( ) ;
2020-06-15 07:44:41 +08:00
} ,
afterEach ( ) {
_clearSnapshots ( ) ;
2020-02-04 23:59:56 +08:00
}
} ) ;
2020-03-03 03:24:31 +08:00
const stubDraftResponse = ( ) => {
sandbox . stub ( Draft , "get" ) . returns (
Promise . resolve ( {
draft :
'{"reply":"dum de dum da ba.","action":"createTopic","title":"dum da ba dum dum","categoryId":null,"archetypeId":"regular","metaData":null,"composerTime":540879,"typingTime":3400}' ,
draft _sequence : 0
} )
) ;
} ;
2020-02-04 23:59:56 +08:00
QUnit . test ( "shared draft" , async assert => {
2020-03-03 03:24:31 +08:00
stubDraftResponse ( ) ;
2020-02-04 23:59:56 +08:00
try {
toggleCheckDraftPopup ( true ) ;
const composerActions = selectKit ( ".composer-actions" ) ;
const tags = selectKit ( ".mini-tag-chooser" ) ;
await visit ( "/" ) ;
await click ( "#create-topic" ) ;
await fillIn (
"#reply-title" ,
"This is the new text for the title using 'quotes'"
) ;
await fillIn ( ".d-editor-input" , "This is the new text for the post" ) ;
await tags . expand ( ) ;
await tags . selectRowByValue ( "monkey" ) ;
await composerActions . expand ( ) ;
await composerActions . selectRowByValue ( "shared_draft" ) ;
assert . equal ( tags . header ( ) . value ( ) , "monkey" , "tags are not reset" ) ;
assert . equal (
find ( "#reply-title" ) . val ( ) ,
"This is the new text for the title using 'quotes'"
) ;
assert . equal (
find ( "#reply-control .btn-primary.create .d-button-label" ) . text ( ) ,
I18n . t ( "composer.create_shared_draft" )
) ;
assert . ok ( find ( "#reply-control.composing-shared-draft" ) . length === 1 ) ;
await click ( ".modal-footer .btn.btn-default" ) ;
} finally {
toggleCheckDraftPopup ( false ) ;
}
2020-03-03 03:24:31 +08:00
sandbox . restore ( ) ;
2020-02-04 23:59:56 +08:00
} ) ;
QUnit . test ( "reply_as_new_topic with new_topic draft" , async assert => {
await visit ( "/t/internationalization-localization/280" ) ;
await click ( ".create.reply" ) ;
const composerActions = selectKit ( ".composer-actions" ) ;
await composerActions . expand ( ) ;
2020-03-03 03:24:31 +08:00
stubDraftResponse ( ) ;
2020-02-04 23:59:56 +08:00
await composerActions . selectRowByValue ( "reply_as_new_topic" ) ;
assert . equal (
find ( ".bootbox .modal-body" ) . text ( ) ,
I18n . t ( "composer.composer_actions.reply_as_new_topic.confirm" )
) ;
await click ( ".modal-footer .btn.btn-default" ) ;
2020-03-03 03:24:31 +08:00
sandbox . restore ( ) ;
2020-02-04 23:59:56 +08:00
} ) ;