about summary refs log tree commit diff
path: root/spec/routing/accounts_routing_spec.rb
blob: 8b2c124fd21a72c69b0ccd35d7521edf39233492 (plain) (blame)
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
# frozen_string_literal: true

require 'rails_helper'

describe 'Routes under accounts/' do
  context 'with local username' do
    let(:username) { 'alice' }

    it 'routes /@:username' do
      expect(get("/@#{username}")).to route_to('accounts#show', username: username)
    end

    it 'routes /@:username.json' do
      expect(get("/@#{username}.json")).to route_to('accounts#show', username: username, format: 'json')
    end

    it 'routes /@:username.rss' do
      expect(get("/@#{username}.rss")).to route_to('accounts#show', username: username, format: 'rss')
    end

    it 'routes /@:username/:id' do
      expect(get("/@#{username}/123")).to route_to('statuses#show', account_username: username, id: '123')
    end

    it 'routes /@:username/:id/embed' do
      expect(get("/@#{username}/123/embed")).to route_to('statuses#embed', account_username: username, id: '123')
    end

    it 'routes /@:username/following' do
      expect(get("/@#{username}/following")).to route_to('following_accounts#index', account_username: username)
    end

    it 'routes /@:username/followers' do
      expect(get("/@#{username}/followers")).to route_to('follower_accounts#index', account_username: username)
    end

    it 'routes /@:username/with_replies' do
      expect(get("/@#{username}/with_replies")).to route_to('accounts#show', username: username)
    end

    it 'routes /@:username/media' do
      expect(get("/@#{username}/media")).to route_to('accounts#show', username: username)
    end

    it 'routes /@:username/tagged/:tag' do
      expect(get("/@#{username}/tagged/foo")).to route_to('accounts#show', username: username, tag: 'foo')
    end
  end

  context 'with remote username' do
    let(:username) { 'alice@example.com' }

    it 'routes /@:username' do
      expect(get("/@#{username}")).to route_to('home#index', username_with_domain: username)
    end

    it 'routes /@:username/:id' do
      expect(get("/@#{username}/123")).to route_to('home#index', username_with_domain: username, any: '123')
    end

    it 'routes /@:username/:id/embed' do
      expect(get("/@#{username}/123/embed")).to route_to('home#index', username_with_domain: username, any: '123/embed')
    end

    it 'routes /@:username/following' do
      expect(get("/@#{username}/following")).to route_to('home#index', username_with_domain: username, any: 'following')
    end

    it 'routes /@:username/followers' do
      expect(get("/@#{username}/followers")).to route_to('home#index', username_with_domain: username, any: 'followers')
    end

    it 'routes /@:username/with_replies' do
      expect(get("/@#{username}/with_replies")).to route_to('home#index', username_with_domain: username, any: 'with_replies')
    end

    it 'routes /@:username/media' do
      expect(get("/@#{username}/media")).to route_to('home#index', username_with_domain: username, any: 'media')
    end

    it 'routes /@:username/tagged/:tag' do
      expect(get("/@#{username}/tagged/foo")).to route_to('home#index', username_with_domain: username, any: 'tagged/foo')
    end
  end
end