Commit e27807adef1e76ac71b5d5f0b2934d040d21ac80
Committed by
Victor Costa
1 parent
b004dee3
Exists in
staging
and in
27 other branches
api: should content type return all text articles
Showing
3 changed files
with
27 additions
and
3 deletions
Show diff stats
app/api/helpers.rb
| @@ -407,9 +407,11 @@ module Api | @@ -407,9 +407,11 @@ module Api | ||
| 407 | 407 | ||
| 408 | def parse_content_type(content_type) | 408 | def parse_content_type(content_type) |
| 409 | return nil if content_type.blank? | 409 | return nil if content_type.blank? |
| 410 | - content_type.split(',').map do |content_type| | ||
| 411 | - content_type.camelcase | 410 | + content_types = content_type.split(',').map do |content_type| |
| 411 | + content_type = content_type.camelcase | ||
| 412 | + content_type == 'TextArticle' ? Article.text_article_types : content_type | ||
| 412 | end | 413 | end |
| 414 | + content_types.flatten.uniq | ||
| 413 | end | 415 | end |
| 414 | 416 | ||
| 415 | def period(from_date, until_date) | 417 | def period(from_date, until_date) |
test/api/articles_test.rb
| @@ -34,6 +34,17 @@ class ArticlesTest < ActiveSupport::TestCase | @@ -34,6 +34,17 @@ class ArticlesTest < ActiveSupport::TestCase | ||
| 34 | assert_includes json["articles"].map { |a| a["id"] }, article.id | 34 | assert_includes json["articles"].map { |a| a["id"] }, article.id |
| 35 | end | 35 | end |
| 36 | 36 | ||
| 37 | + should 'list all text articles' do | ||
| 38 | + profile = Community.create(identifier: 'my-community', name: 'name-my-community') | ||
| 39 | + a1 = fast_create(TextArticle, :profile_id => profile.id) | ||
| 40 | + a2 = fast_create(TextileArticle, :profile_id => profile.id) | ||
| 41 | + a3 = fast_create(TinyMceArticle, :profile_id => profile.id) | ||
| 42 | + params['content_type']='TextArticle' | ||
| 43 | + get "api/v1/communities/#{profile.id}/articles?#{params.to_query}" | ||
| 44 | + json = JSON.parse(last_response.body) | ||
| 45 | + assert_equal 3, json['articles'].count | ||
| 46 | + end | ||
| 47 | + | ||
| 37 | should 'get profile homepage' do | 48 | should 'get profile homepage' do |
| 38 | article = fast_create(Article, :profile_id => user.person.id, :name => "Some thing") | 49 | article = fast_create(Article, :profile_id => user.person.id, :name => "Some thing") |
| 39 | person.home_page=article | 50 | person.home_page=article |
| @@ -124,6 +135,17 @@ class ArticlesTest < ActiveSupport::TestCase | @@ -124,6 +135,17 @@ class ArticlesTest < ActiveSupport::TestCase | ||
| 124 | assert_equivalent [child1.id, child2.id], json["articles"].map { |a| a["id"] } | 135 | assert_equivalent [child1.id, child2.id], json["articles"].map { |a| a["id"] } |
| 125 | end | 136 | end |
| 126 | 137 | ||
| 138 | + should 'list all text articles of children' do | ||
| 139 | + article = fast_create(Article, :profile_id => user.person.id, :name => "Some thing") | ||
| 140 | + child1 = fast_create(TextArticle, :parent_id => article.id, :profile_id => user.person.id, :name => "Some thing 1") | ||
| 141 | + child2 = fast_create(TextileArticle, :parent_id => article.id, :profile_id => user.person.id, :name => "Some thing 2") | ||
| 142 | + child3 = fast_create(TinyMceArticle, :parent_id => article.id, :profile_id => user.person.id, :name => "Some thing 3") | ||
| 143 | + get "/api/v1/articles/#{article.id}/children?#{params.to_query}" | ||
| 144 | + json = JSON.parse(last_response.body) | ||
| 145 | + assert_equivalent [child1.id, child2.id, child3.id], json["articles"].map { |a| a["id"] } | ||
| 146 | + end | ||
| 147 | + | ||
| 148 | + | ||
| 127 | should 'list public article children for not logged in access' do | 149 | should 'list public article children for not logged in access' do |
| 128 | article = fast_create(Article, :profile_id => user.person.id, :name => "Some thing") | 150 | article = fast_create(Article, :profile_id => user.person.id, :name => "Some thing") |
| 129 | child1 = fast_create(Article, :parent_id => article.id, :profile_id => user.person.id, :name => "Some thing") | 151 | child1 = fast_create(Article, :parent_id => article.id, :profile_id => user.person.id, :name => "Some thing") |
test/api/helpers_test.rb
| @@ -99,7 +99,7 @@ class Api::HelpersTest < ActiveSupport::TestCase | @@ -99,7 +99,7 @@ class Api::HelpersTest < ActiveSupport::TestCase | ||
| 99 | end | 99 | end |
| 100 | 100 | ||
| 101 | should 'parse_content_type return all content types as an array' do | 101 | should 'parse_content_type return all content types as an array' do |
| 102 | - assert_equivalent ['TextArticle','TinyMceArticle'], parse_content_type("TextArticle,TinyMceArticle") | 102 | + assert_equivalent ['TextileArticle','TinyMceArticle'], parse_content_type("TextileArticle,TinyMceArticle") |
| 103 | end | 103 | end |
| 104 | 104 | ||
| 105 | should 'find_article return article by id in list passed for user with permission' do | 105 | should 'find_article return article by id in list passed for user with permission' do |