Added facebook agent tests.
This commit is contained in:
parent
ad56c494f5
commit
2831e81985
3 changed files with 104 additions and 15 deletions
|
@ -6,6 +6,7 @@ class App.TicketZoomArticleActions extends App.Controller
|
||||||
'click [data-type=emailReplyAll]': 'emailReplyAll'
|
'click [data-type=emailReplyAll]': 'emailReplyAll'
|
||||||
'click [data-type=twitterStatusReply]': 'twitterStatusReply'
|
'click [data-type=twitterStatusReply]': 'twitterStatusReply'
|
||||||
'click [data-type=twitterDirectMessageReply]': 'twitterDirectMessageReply'
|
'click [data-type=twitterDirectMessageReply]': 'twitterDirectMessageReply'
|
||||||
|
'click [data-type=facebookFeedReply]': 'facebookFeedReply'
|
||||||
|
|
||||||
constructor: ->
|
constructor: ->
|
||||||
super
|
super
|
||||||
|
@ -110,6 +111,13 @@ class App.TicketZoomArticleActions extends App.Controller
|
||||||
icon: 'reply'
|
icon: 'reply'
|
||||||
href: '#'
|
href: '#'
|
||||||
}
|
}
|
||||||
|
if article.type.name is 'facebook feed post' || article.type.name is 'facebook feed comment'
|
||||||
|
actions.push {
|
||||||
|
name: 'reply'
|
||||||
|
type: 'facebookFeedReply'
|
||||||
|
icon: 'reply'
|
||||||
|
href: '#'
|
||||||
|
}
|
||||||
|
|
||||||
actions.push {
|
actions.push {
|
||||||
name: 'split'
|
name: 'split'
|
||||||
|
@ -119,6 +127,23 @@ class App.TicketZoomArticleActions extends App.Controller
|
||||||
}
|
}
|
||||||
actions
|
actions
|
||||||
|
|
||||||
|
facebookFeedReply: (e) =>
|
||||||
|
e.preventDefault()
|
||||||
|
|
||||||
|
type = App.TicketArticleType.findByAttribute('name', 'facebook feed comment')
|
||||||
|
console.log('tt', type)
|
||||||
|
@scrollToCompose()
|
||||||
|
|
||||||
|
# empty form
|
||||||
|
articleNew = {
|
||||||
|
to: ''
|
||||||
|
cc: ''
|
||||||
|
body: ''
|
||||||
|
in_reply_to: ''
|
||||||
|
}
|
||||||
|
|
||||||
|
App.Event.trigger('ui::ticket::setArticleType', { ticket: @ticket, type: type, article: articleNew } )
|
||||||
|
|
||||||
twitterStatusReply: (e) =>
|
twitterStatusReply: (e) =>
|
||||||
e.preventDefault()
|
e.preventDefault()
|
||||||
|
|
||||||
|
|
|
@ -40,6 +40,8 @@ class App.TicketZoomArticleNew extends App.Controller
|
||||||
possibleArticleType['twitter direct-message'] = true
|
possibleArticleType['twitter direct-message'] = true
|
||||||
else if articleTypeCreate is 'email'
|
else if articleTypeCreate is 'email'
|
||||||
possibleArticleType['email'] = true
|
possibleArticleType['email'] = true
|
||||||
|
else if articleTypeCreate is 'facebook feed post'
|
||||||
|
possibleArticleType['facebook feed comment'] = true
|
||||||
if @ticket && @ticket.customer_id
|
if @ticket && @ticket.customer_id
|
||||||
customer = App.User.find(@ticket.customer_id)
|
customer = App.User.find(@ticket.customer_id)
|
||||||
if customer.email
|
if customer.email
|
||||||
|
@ -62,11 +64,12 @@ class App.TicketZoomArticleNew extends App.Controller
|
||||||
attributes: ['to', 'cc']
|
attributes: ['to', 'cc']
|
||||||
features: ['attachment']
|
features: ['attachment']
|
||||||
}
|
}
|
||||||
if possibleArticleType.facebook
|
if possibleArticleType['facebook feed comment']
|
||||||
@articleTypes.push {
|
@articleTypes.push {
|
||||||
name: 'facebook'
|
name: 'facebook feed comment'
|
||||||
icon: 'facebook'
|
icon: 'facebook'
|
||||||
attributes: []
|
attributes: []
|
||||||
|
features: []
|
||||||
}
|
}
|
||||||
if possibleArticleType['twitter status']
|
if possibleArticleType['twitter status']
|
||||||
@articleTypes.push {
|
@articleTypes.push {
|
||||||
|
@ -283,6 +286,10 @@ class App.TicketZoomArticleNew extends App.Controller
|
||||||
App.Utils.htmlRemoveRichtext(@$('[data-name=body]'))
|
App.Utils.htmlRemoveRichtext(@$('[data-name=body]'))
|
||||||
params.content_type = 'text/plain'
|
params.content_type = 'text/plain'
|
||||||
params.body = "#{App.Utils.html2text(params.body, true)}\n#{@signature.text()}"
|
params.body = "#{App.Utils.html2text(params.body, true)}\n#{@signature.text()}"
|
||||||
|
if params.type is 'facebook feed comment'
|
||||||
|
App.Utils.htmlRemoveRichtext(@$('[data-name=body]'))
|
||||||
|
params.content_type = 'text/plain'
|
||||||
|
params.body = App.Utils.html2text(params.body, true)
|
||||||
|
|
||||||
params
|
params
|
||||||
|
|
||||||
|
|
|
@ -5,22 +5,33 @@ class FacebookBrowserTest < TestCase
|
||||||
def test_add_config
|
def test_add_config
|
||||||
|
|
||||||
# app config
|
# app config
|
||||||
if !ENV['FACEBOOK_APP_ID']
|
if !ENV['FACEBOOK_BT_APP_ID']
|
||||||
fail "ERROR: Need FACEBOOK_APP_ID - hint FACEBOOK_APP_ID='1234'"
|
fail "ERROR: Need FACEBOOK_BT_APP_ID - hint FACEBOOK_BT_APP_ID='1234'"
|
||||||
end
|
end
|
||||||
app_id = ENV['FACEBOOK_APP_ID']
|
app_id = ENV['FACEBOOK_BT_APP_ID']
|
||||||
if !ENV['FACEBOOK_APP_SECRET']
|
if !ENV['FACEBOOK_BT_APP_SECRET']
|
||||||
fail "ERROR: Need FACEBOOK_APP_SECRET - hint FACEBOOK_APP_SECRET='1234'"
|
fail "ERROR: Need FACEBOOK_BT_APP_SECRET - hint FACEBOOK_BT_APP_SECRET='1234'"
|
||||||
end
|
end
|
||||||
app_secret = ENV['FACEBOOK_APP_SECRET']
|
app_secret = ENV['FACEBOOK_BT_APP_SECRET']
|
||||||
if !ENV['FACEBOOK_USER_LOGIN']
|
if !ENV['FACEBOOK_BT_USER_LOGIN']
|
||||||
fail "ERROR: Need FACEBOOK_USER_LOGIN - hint FACEBOOK_USER_LOGIN='1234'"
|
fail "ERROR: Need FACEBOOK_BT_USER_LOGIN - hint FACEBOOK_BT_USER_LOGIN='1234'"
|
||||||
end
|
end
|
||||||
user_login = ENV['FACEBOOK_USER_LOGIN']
|
user_login = ENV['FACEBOOK_BT_USER_LOGIN']
|
||||||
if !ENV['FACEBOOK_USER_PW']
|
if !ENV['FACEBOOK_BT_USER_PW']
|
||||||
fail "ERROR: Need FACEBOOK_USER_PW - hint FACEBOOK_USER_PW='1234'"
|
fail "ERROR: Need FACEBOOK_BT_USER_PW - hint FACEBOOK_BT_USER_PW='1234'"
|
||||||
end
|
end
|
||||||
user_pw = ENV['FACEBOOK_USER_PW']
|
user_pw = ENV['FACEBOOK_BT_USER_PW']
|
||||||
|
if !ENV['FACEBOOK_BT_PAGE_ID']
|
||||||
|
fail "ERROR: Need FACEBOOK_BT_PAGE_ID - hint FACEBOOK_BT_PAGE_ID='1234'"
|
||||||
|
end
|
||||||
|
page_id = ENV['FACEBOOK_BT_PAGE_ID']
|
||||||
|
|
||||||
|
if !ENV['FACEBOOK_BT_CUSTOMER']
|
||||||
|
fail "ERROR: Need FACEBOOK_BT_CUSTOMER - hint FACEBOOK_BT_CUSTOMER='name:1234:access_token'"
|
||||||
|
end
|
||||||
|
customer_name = ENV['FACEBOOK_BT_CUSTOMER'].split(':')[0]
|
||||||
|
customer_id = ENV['FACEBOOK_BT_CUSTOMER'].split(':')[1]
|
||||||
|
customer_access_token = ENV['FACEBOOK_BT_CUSTOMER'].split(':')[2]
|
||||||
|
|
||||||
@browser = browser_instance
|
@browser = browser_instance
|
||||||
login(
|
login(
|
||||||
|
@ -129,7 +140,9 @@ class FacebookBrowserTest < TestCase
|
||||||
value: 'Dashboard',
|
value: 'Dashboard',
|
||||||
)
|
)
|
||||||
|
|
||||||
click(css: '#content .modal .js-close')
|
select(css: '#content .modal [name="pages::' + page_id + '::group_id"]', value: 'Users')
|
||||||
|
click(css: '#content .modal .js-submit')
|
||||||
|
sleep 5
|
||||||
|
|
||||||
watch_for(
|
watch_for(
|
||||||
css: '#content',
|
css: '#content',
|
||||||
|
@ -165,6 +178,50 @@ class FacebookBrowserTest < TestCase
|
||||||
exists_not(
|
exists_not(
|
||||||
css: '#content .main .action:nth-child(2)'
|
css: '#content .main .action:nth-child(2)'
|
||||||
)
|
)
|
||||||
|
sleep 50
|
||||||
|
|
||||||
|
# post new posting
|
||||||
|
hash = "##{rand(999_999)}"
|
||||||
|
customer_client = Koala::Facebook::API.new(customer_access_token)
|
||||||
|
message = "I need some help for your product #{hash}"
|
||||||
|
post = customer_client.put_wall_post(message, {}, page_id)
|
||||||
|
|
||||||
|
# watch till post is in app
|
||||||
|
click( text: 'Overviews' )
|
||||||
|
|
||||||
|
# enable full overviews
|
||||||
|
execute(
|
||||||
|
js: '$(".content.active .sidebar").css("display", "block")',
|
||||||
|
)
|
||||||
|
|
||||||
|
click( text: 'Unassigned & Open' )
|
||||||
|
sleep 6 # till overview is rendered
|
||||||
|
|
||||||
|
watch_for(
|
||||||
|
css: '.content.active',
|
||||||
|
value: hash,
|
||||||
|
timeout: 40,
|
||||||
|
)
|
||||||
|
|
||||||
|
ticket_open_by_title(
|
||||||
|
title: hash,
|
||||||
|
)
|
||||||
|
click( css: '.content.active [data-type="facebookFeedReply"]' )
|
||||||
|
sleep 2
|
||||||
|
|
||||||
|
re_hash = "#{hash}re#{rand(99_999)}"
|
||||||
|
|
||||||
|
ticket_update(
|
||||||
|
data: {
|
||||||
|
body: "You need to do this #{re_hash} #{rand(999_999)}",
|
||||||
|
},
|
||||||
|
)
|
||||||
|
sleep 20
|
||||||
|
|
||||||
|
match(
|
||||||
|
css: '.content.active .ticket-article',
|
||||||
|
value: re_hash,
|
||||||
|
)
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue