ref: master
test/api/tags_test.rb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 |
require_relative 'test_helper' class TagsTest < ActiveSupport::TestCase def setup create_and_activate_user end should 'get article tags' do profile = fast_create(Profile) a = profile.articles.create(name: 'Test') a.tags.create! name: 'foo' get "/api/v1/articles/#{a.id}/tags?#{params.to_query}" json = JSON.parse(last_response.body) assert_equal ['name' => 'foo', 'count' => 1], json end should 'post article tags' do login_api profile = fast_create(Profile) a = profile.articles.create(name: 'Test') post "/api/v1/articles/#{a.id}/tags?#{params.to_query}&tags=foo" assert_equal 201, last_response.status assert_equal ['foo'], a.reload.tag_list end should 'not post article tags if not authenticated' do profile = fast_create(Profile) a = profile.articles.create(name: 'Test') post "/api/v1/articles/#{a.id}/tags?#{params.to_query}&tags=foo" assert_equal 401, last_response.status assert_equal [], a.reload.tag_list end should 'get profile tags' do profile = fast_create(Profile) profile.tags.create! name: 'foo' get "/api/v1/profiles/#{profile.id}/tags?#{params.to_query}" json = JSON.parse(last_response.body) assert_equal ['name' => 'foo', 'count' => 1], json end should 'post profile tags' do login_api profile = fast_create(Profile) post "/api/v1/profiles/#{profile.id}/tags?#{params.to_query}&tags=foo" assert_equal 201, last_response.status assert_equal ['foo'], profile.reload.tag_list end should 'not post profile tags if not authenticated' do profile = fast_create(Profile) post "/api/v1/profiles/#{profile.id}/tags?#{params.to_query}&tags=foo" assert_equal 401, last_response.status assert_equal [], profile.reload.tag_list end should 'get environment tags for path environments' do person = fast_create(Person) person.articles.create!(:name => 'article 1', :tag_list => 'first-tag') person.articles.create!(:name => 'article 2', :tag_list => 'first-tag, second-tag') person.articles.create!(:name => 'article 3', :tag_list => 'first-tag, second-tag, third-tag') get '/api/v1/environments/tags' json = JSON.parse(last_response.body) json.each do |name, count| if name == 'first-tag' assert_equal(3, count) elsif name == 'second-tag' assert_equal(2, count) elsif name == 'third-tag' assert_equal(1, count) end end end should 'get environment tags for path environments with status OK' do get '/api/v1/environments/tags' assert_equal Api::Status::OK, last_response.status end should 'get environment tags for path environments/:id path' do environment = fast_create(Environment) person = fast_create(Person, :environment_id => environment.id) person.articles.create!(:name => 'article 1', :tag_list => 'first-tag') person.articles.create!(:name => 'article 2', :tag_list => 'first-tag, second-tag') person.articles.create!(:name => 'article 3', :tag_list => 'first-tag, second-tag, third-tag') get "/api/v1/environments/#{environment.id}/tags" json = JSON.parse(last_response.body) json.each do |name, count| if name == 'first-tag' assert_equal(3, count) elsif name == 'second-tag' assert_equal(2, count) elsif name == 'third-tag' assert_equal(1, count) end end end should 'get environment tags for path environments/:id with status OK' do environment = fast_create(Environment) get "/api/v1/environments/#{environment.id}/tags" assert_equal Api::Status::OK, last_response.status end end |