forked from activeadmin/activeadmin
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpaths.rb
75 lines (62 loc) · 2.02 KB
/
paths.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
# frozen_string_literal: true
module NavigationHelpers
# Maps a name to a path. Used by the
#
# When /^I go to (.+)$/ do |page_name|
#
# step definition in web_steps.rb
#
def path_to(page_name)
case page_name
when /the dashboard/
"/admin"
when /the new post page/
"/admin/posts/new"
when /the login page/
"/admin/login"
when /the first post custom status page/
"/admin/posts/1/status"
when /the last posts page/
"/admin/last_posts"
when /the admin password reset form with token "([^"]*)"/
"/admin/password/edit?reset_password_token=#{$1}"
# the index page for posts in the user_admin namespace
when /^the index page for (.*) in the (.*) namespace$/
send "#{$2}_#{$1}_path"
# same as above, except defaults to admin namespace
when /^the index page for (.*)$/
send "admin_#{$1}_path"
when /^the (.*) index page for (.*)$/
send "admin_#{$2}_path", format: $1
when /^the last author's posts$/
admin_user_posts_path(User.last)
when /^the last author's last post page$/
admin_user_post_path(User.last, Post.where(author_id: User.last.id).last)
when /^the last post's show page$/
admin_post_path(Post.last)
when /^the post's show page$/
admin_post_path(Post.last)
when /^the last post's edit page$/
edit_admin_post_path(Post.last)
when /^the last author's show page$/
admin_user_path(User.last)
# Add more mappings here.
# Here is an example that pulls values out of the Regexp:
#
# when /^(.*)'s profile page$/i
# user_profile_path(User.find_by_login($1))
else
begin
page_name =~ /the (.*) page/
path_components = $1.split(/\s+/)
self.send path_components.push("path").join("_")
# :nocov:
rescue Object => e
raise "Can't find mapping from \"#{page_name}\" to a path.\n" +
"Now, go and add a mapping in #{__FILE__}"
# :nocov:
end
end
end
end
World(NavigationHelpers)