test/integration/routes/routes_test.rb in jsonapi-resources-0.0.4 vs test/integration/routes/routes_test.rb in jsonapi-resources-0.0.5

- old
+ new

@@ -1,85 +1,133 @@ require File.expand_path('../../../test_helper', __FILE__) class RoutesTest < ActionDispatch::IntegrationTest def test_routing_post - assert_routing({ path: 'posts', method: :post }, { controller: 'posts', action: 'create' }) + assert_routing({path: 'posts', method: :post}, + {controller: 'posts', action: 'create'}) end def test_routing_put - assert_routing({ path: '/posts/1', method: :put }, { controller: 'posts', action: 'update', id: '1' }) + assert_routing({path: '/posts/1', method: :put}, + {controller: 'posts', action: 'update', id: '1'}) end def test_routing_posts_show - assert_routing({ path: '/posts/1', method: :get }, {action: 'show', controller: 'posts', id: '1'}) + assert_routing({path: '/posts/1', method: :get}, + {action: 'show', controller: 'posts', id: '1'}) end def test_routing_posts_links_author_show - assert_routing({ path: '/posts/1/links/author', method: :get }, { controller: 'posts', action: 'show_association', post_id: '1', association: 'author' }) + assert_routing({path: '/posts/1/links/author', method: :get}, + {controller: 'posts', action: 'show_association', post_id: '1', association: 'author'}) end def test_routing_posts_links_author_destroy - assert_routing({ path: '/posts/1/links/author', method: :delete }, { controller: 'posts', action: 'destroy_association', post_id: '1', association: 'author' }) + assert_routing({path: '/posts/1/links/author', method: :delete}, + {controller: 'posts', action: 'destroy_association', post_id: '1', association: 'author'}) end def test_routing_posts_links_author_create - assert_routing({ path: '/posts/1/links/author', method: :post }, { controller: 'posts', action: 'create_association', post_id: '1', association: 'author' }) + assert_routing({path: '/posts/1/links/author', method: :post}, + {controller: 'posts', action: 'create_association', post_id: '1', association: 'author'}) end + def test_routing_posts_links_author_update + assert_routing({path: '/posts/1/links/author', method: :put}, + {controller: 'posts', action: 'update_association', post_id: '1', association: 'author'}) + end + def test_routing_posts_links_tags_show - assert_routing({ path: '/posts/1/links/tags', method: :get }, { controller: 'posts', action: 'show_association', post_id: '1', association: 'tags' }) + assert_routing({path: '/posts/1/links/tags', method: :get}, + {controller: 'posts', action: 'show_association', post_id: '1', association: 'tags'}) end def test_routing_posts_links_tags_destroy - assert_routing({ path: '/posts/1/links/tags/1,2', method: :delete }, { controller: 'posts', action: 'destroy_association', post_id: '1', keys: '1,2', association: 'tags' }) + assert_routing({path: '/posts/1/links/tags/1,2', method: :delete}, + {controller: 'posts', action: 'destroy_association', post_id: '1', keys: '1,2', association: 'tags'}) end - def test_routing_posts_links_tags_update - assert_routing({ path: '/posts/1/links/tags', method: :post }, { controller: 'posts', action: 'create_association', post_id: '1', association: 'tags' }) + def test_routing_posts_links_tags_create + assert_routing({path: '/posts/1/links/tags', method: :post}, + {controller: 'posts', action: 'create_association', post_id: '1', association: 'tags'}) end + def test_routing_posts_links_tags_update_acts_as_set + assert_routing({path: '/posts/1/links/tags', method: :put}, + {controller: 'posts', action: 'update_association', post_id: '1', association: 'tags'}) + end + + def test_routing_authors_show + assert_routing({path: '/authors/1', method: :get}, + {action: 'show', controller: 'authors', id: '1'}) + end + + def test_routing_author_links_posts_create_not_acts_as_set + assert_routing({path: '/authors/1/links/posts', method: :post}, + {controller: 'authors', action: 'create_association', author_id: '1', association: 'posts'}) + end + + # ToDo: Test that non acts as set has_many association update route is not created + # def test_routing_author_links_posts_update_not_acts_as_set + # refute_routing({ path: '/authors/1/links/posts', method: :put }, + # { controller: 'authors', action: 'update_association', author_id: '1', association: 'posts' }) + # end + # V1 def test_routing_v1_posts_show - assert_routing({ path: '/api/v1/posts/1', method: :get }, {action: 'show', controller: 'api/v1/posts', id: '1'}) + assert_routing({path: '/api/v1/posts/1', method: :get}, + {action: 'show', controller: 'api/v1/posts', id: '1'}) end def test_routing_v1_posts_delete - assert_routing({ path: '/api/v1/posts/1', method: :delete }, {action: 'destroy', controller: 'api/v1/posts', id: '1'}) + assert_routing({path: '/api/v1/posts/1', method: :delete}, + {action: 'destroy', controller: 'api/v1/posts', id: '1'}) end def test_routing_v1_posts_links_author_show - assert_routing({ path: '/api/v1/posts/1/links/author', method: :get }, { controller: 'api/v1/posts', action: 'show_association', post_id: '1', association: 'author' }) + assert_routing({path: '/api/v1/posts/1/links/author', method: :get}, + {controller: 'api/v1/posts', action: 'show_association', post_id: '1', association: 'author'}) end # V2 def test_routing_v2_posts_show - assert_routing({ path: '/api/v2/authors/1', method: :get }, {action: 'show', controller: 'api/v2/authors', id: '1'}) + assert_routing({path: '/api/v2/authors/1', method: :get}, + {action: 'show', controller: 'api/v2/authors', id: '1'}) end def test_routing_v2_posts_links_author_show - assert_routing({ path: '/api/v2/posts/1/links/author', method: :get }, { controller: 'api/v2/posts', action: 'show_association', post_id: '1', association: 'author' }) + assert_routing({path: '/api/v2/posts/1/links/author', method: :get}, + {controller: 'api/v2/posts', action: 'show_association', post_id: '1', association: 'author'}) end def test_routing_v2_preferences_show - assert_routing({ path: '/api/v2/preferences', method: :get }, {action: 'show', controller: 'api/v2/preferences'}) + assert_routing({path: '/api/v2/preferences', method: :get}, + {action: 'show', controller: 'api/v2/preferences'}) end # V3 def test_routing_v3_posts_show - assert_routing({ path: '/api/v3/posts/1', method: :get }, {action: 'show', controller: 'api/v3/posts', id: '1'}) + assert_routing({path: '/api/v3/posts/1', method: :get}, + {action: 'show', controller: 'api/v3/posts', id: '1'}) end # ToDo: Refute routing # def test_routing_v3_posts_delete - # assert_routing({ path: '/api/v3/posts/1', method: :delete }, {action: 'destroy', controller: 'api/v3/posts', id: '1'}) + # assert_routing({ path: '/api/v3/posts/1', method: :delete }, + # {action: 'destroy', controller: 'api/v3/posts', id: '1'}) # end # def test_routing_posts_links_author_except_destroy - # assert_routing({ path: '/api/v3/posts/1/links/author', method: :delete }, { controller: 'api/v3/posts', action: 'destroy_association', post_id: '1', association: 'author' }) + # assert_routing({ path: '/api/v3/posts/1/links/author', method: :delete }, + # { controller: 'api/v3/posts', action: 'destroy_association', post_id: '1', association: 'author' }) # end # # def test_routing_posts_links_tags_only_create_show - # assert_routing({ path: '/api/v3/posts/1/links/tags/1,2', method: :delete }, { controller: 'api/v3/posts', action: 'destroy_association', post_id: '1', keys: '1,2', association: 'tags' }) + # assert_routing({ path: '/api/v3/posts/1/links/tags/1,2', method: :delete }, + # { controller: 'api/v3/posts', action: 'destroy_association', post_id: '1', keys: '1,2', association: 'tags' }) # end + + # Test that non acts as set has_many association update route is not created + end