dorsale 3.3.0 → 3.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +9 -0
- data/app/assets/stylesheets/dorsale/engines/flyboy.sass +0 -7
- data/app/controllers/dorsale/alexandrie/attachments_controller.rb +7 -0
- data/app/controllers/dorsale/application_controller.rb +1 -0
- data/app/controllers/dorsale/billing_machine/invoices_controller.rb +2 -0
- data/app/controllers/dorsale/billing_machine/quotations_controller.rb +2 -0
- data/app/controllers/dorsale/customer_vault/application_controller.rb +0 -4
- data/app/controllers/dorsale/customer_vault/people_controller.rb +0 -2
- data/app/controllers/dorsale/expense_gun/expenses_controller.rb +2 -2
- data/app/controllers/dorsale/flyboy/application_controller.rb +0 -3
- data/app/controllers/dorsale/flyboy/tasks_controller.rb +2 -8
- data/app/helpers/dorsale/all_helpers.rb +1 -0
- data/app/helpers/dorsale/flyboy/application_helper.rb +3 -12
- data/app/helpers/dorsale/link_helper.rb +10 -0
- data/app/helpers/dorsale/sorting_helper.rb +48 -0
- data/app/mailers/dorsale/billing_machine/invoice_mailer.rb +1 -1
- data/app/models/concerns/dorsale/model_i18n.rb +25 -0
- data/app/models/concerns/dorsale/model_to_s.rb +9 -0
- data/{lib → app/models/concerns}/dorsale/polymorphic_id.rb +1 -3
- data/app/models/concerns/dorsale/search.rb +30 -0
- data/app/models/dorsale/alexandrie/attachment.rb +7 -6
- data/app/models/dorsale/application_record.rb +6 -0
- data/app/models/dorsale/billing_machine/invoice.rb +2 -6
- data/app/models/dorsale/billing_machine/quotation.rb +4 -4
- data/app/models/dorsale/customer_vault/person.rb +0 -2
- data/app/models/dorsale/expense_gun/expense.rb +8 -8
- data/app/models/dorsale/flyboy/task.rb +5 -16
- data/app/pdfs/concerns/dorsale/alexandrie/prawn/render_with_attachments.rb +13 -0
- data/app/pdfs/dorsale/billing_machine/invoice_single_vat_pdf.rb +6 -1
- data/app/pdfs/dorsale/billing_machine/quotation_pdf_common_methods.rb +0 -18
- data/app/policies/dorsale/expense_gun/expense_policy_helper.rb +1 -1
- data/app/policies/dorsale/flyboy/task_policy_helper.rb +0 -10
- data/app/policies/dorsale/policy_checker.rb +0 -1
- data/app/services/dorsale/billing_machine/pdf_file_generator.rb +37 -0
- data/app/services/dorsale/expense_gun/expense/copy.rb +1 -1
- data/app/uploaders/dorsale/pdf_uploader.rb +5 -0
- data/app/views/dorsale/billing_machine/invoices/_details.html.slim +1 -1
- data/app/views/dorsale/billing_machine/invoices/_list.html.slim +1 -2
- data/app/views/dorsale/billing_machine/invoices/index.pdf.ruby +2 -2
- data/app/views/dorsale/billing_machine/invoices/show.pdf.ruby +1 -1
- data/app/views/dorsale/billing_machine/quotations/_list.html.slim +1 -2
- data/app/views/dorsale/billing_machine/quotations/show.pdf.ruby +1 -1
- data/app/views/dorsale/comments/_comment.html.slim +1 -1
- data/app/views/dorsale/customer_vault/links/new.html.slim +1 -1
- data/app/views/dorsale/customer_vault/people/_list_item.html.slim +1 -1
- data/app/views/dorsale/flyboy/tasks/_form.html.slim +3 -0
- data/app/views/dorsale/flyboy/tasks/_index_actions.html.slim +3 -0
- data/app/views/dorsale/flyboy/tasks/_list.html.slim +6 -12
- data/app/views/dorsale/flyboy/tasks/_summary_list.html.slim +2 -3
- data/app/views/dorsale/flyboy/tasks/_taskable_context.html.slim +1 -1
- data/app/views/dorsale/flyboy/tasks/index.xlsx.ruby +2 -4
- data/config/locales/billing_machine.en.yml +1 -0
- data/config/locales/billing_machine.fr.yml +1 -0
- data/config/locales/common.en.yml +3 -3
- data/config/locales/expense_gun.fr.yml +12 -12
- data/config/locales/flyboy.en.yml +1 -28
- data/config/locales/flyboy.fr.yml +1 -28
- data/config/routes.rb +0 -7
- data/db/migrate/20170127131537_delete_folders.rb +10 -0
- data/db/migrate/20170127151610_fix_expense_state.rb +6 -0
- data/db/migrate/20170127155636_billing_machine_add_pdf_file.rb +16 -0
- data/features/expense_gun_expenses.feature +3 -3
- data/features/flyboy_task_comments.feature +1 -1
- data/features/flyboy_tasks.feature +3 -4
- data/features/flyboy_tasks_summary.feature +0 -1
- data/features/step_definitions/billing_machine_invoices_steps.rb +1 -0
- data/features/step_definitions/expense_gun_expenses_steps.rb +2 -2
- data/features/step_definitions/flyboy_tasks_steps.rb +2 -3
- data/features/step_definitions/tasks_summary_steps.rb +3 -3
- data/lib/dorsale/active_record_comma_type_cast.rb +12 -0
- data/lib/dorsale/core_and_rails_ext.rb +3 -0
- data/lib/dorsale/engine.rb +6 -10
- data/lib/dorsale/form_back_url.rb +3 -1
- data/lib/dorsale/version.rb +1 -1
- data/spec/controllers/dorsale/billing_machine/invoices_controller_spec.rb +4 -1
- data/spec/controllers/dorsale/flyboy/tasks_controller_spec.rb +7 -30
- data/spec/factories/flyboy_tasks.rb +0 -2
- data/spec/helpers/dorsale/flyboy/application_helper_spec.rb +0 -64
- data/spec/helpers/dorsale/sorting_helper_spec.rb +74 -0
- data/spec/libs/{active_record_comma_type_cast_spec.rb → dorsale/active_record_comma_type_cast_spec.rb} +1 -1
- data/spec/libs/dorsale/polymorphic_id_spec.rb +8 -7
- data/spec/models/{dorsale → concerns/dorsale}/model_i18n_spec.rb +0 -0
- data/spec/models/dorsale/expense_gun/expense_spec.rb +19 -19
- data/spec/models/dorsale/flyboy/task_spec.rb +2 -1
- data/spec/pdfs/dorsale/billing_machine/invoice_multiple_vat_pdf_spec.rb +18 -13
- data/spec/pdfs/dorsale/billing_machine/invoice_single_vat_pdf_spec.rb +18 -13
- data/spec/pdfs/dorsale/billing_machine/quotation_multiple_vat_pdf_spec.rb +18 -13
- data/spec/pdfs/dorsale/billing_machine/quotation_single_vat_pdf_spec.rb +25 -19
- data/spec/services/dorsale/expense_gun/expense/copy_spec.rb +1 -1
- metadata +21 -52
- data/app/controllers/dorsale/flyboy/folders_controller.rb +0 -140
- data/app/filters/dorsale/flyboy/small_data/filter_for_folders.rb +0 -5
- data/app/filters/dorsale/flyboy/small_data/filter_strategy_by_status.rb +0 -9
- data/app/models/dorsale/flyboy/folder.rb +0 -72
- data/app/policies/dorsale/flyboy/folder_policy_helper.rb +0 -26
- data/app/views/dorsale/flyboy/folders/_context.html.slim +0 -18
- data/app/views/dorsale/flyboy/folders/_context_actions.html.slim +0 -10
- data/app/views/dorsale/flyboy/folders/_form.html.slim +0 -17
- data/app/views/dorsale/flyboy/folders/_index_actions.html.slim +0 -2
- data/app/views/dorsale/flyboy/folders/_list.html.slim +0 -41
- data/app/views/dorsale/flyboy/folders/edit.html.slim +0 -8
- data/app/views/dorsale/flyboy/folders/index.html.slim +0 -22
- data/app/views/dorsale/flyboy/folders/new.html.slim +0 -2
- data/app/views/dorsale/flyboy/folders/show.html.slim +0 -14
- data/features/flyboy_folders.feature +0 -109
- data/features/step_definitions/flyboy_folders_steps.rb +0 -170
- data/lib/active_record_comma_type_cast.rb +0 -12
- data/lib/dorsale/alexandrie/prawn.rb +0 -17
- data/lib/dorsale/model_i18n.rb +0 -30
- data/lib/dorsale/model_to_s.rb +0 -13
- data/lib/dorsale/search.rb +0 -34
- data/spec/controllers/dorsale/flyboy/folders_controller_spec.rb +0 -113
- data/spec/factories/flyboy_folders.rb +0 -7
- data/spec/models/dorsale/flyboy/folder_spec.rb +0 -103
- data/spec/routing/dorsale/flyboy/folders_routing_spec.rb +0 -44
@@ -1,12 +0,0 @@
|
|
1
|
-
module ActiveRecordCommaTypeCast
|
2
|
-
def cast_value(value)
|
3
|
-
if value.is_a?(String)
|
4
|
-
super value.gsub(",", ".").gsub(/[^-0-9\.]/, "")
|
5
|
-
else
|
6
|
-
super value
|
7
|
-
end
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
11
|
-
ActiveRecord::Type::Decimal.send(:prepend, ::ActiveRecordCommaTypeCast)
|
12
|
-
ActiveRecord::Type::Float.send(:prepend, ::ActiveRecordCommaTypeCast)
|
@@ -1,17 +0,0 @@
|
|
1
|
-
module Dorsale
|
2
|
-
module Alexandrie
|
3
|
-
module Prawn
|
4
|
-
def render_with_attachments
|
5
|
-
final_pdf = ::CombinePDF.parse(self.render)
|
6
|
-
|
7
|
-
@main_document.attachments.each do |attachment|
|
8
|
-
next unless File.extname(attachment.file.path) == ".pdf"
|
9
|
-
|
10
|
-
final_pdf << ::CombinePDF.load(attachment.file.path)
|
11
|
-
end
|
12
|
-
|
13
|
-
final_pdf.to_pdf
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
data/lib/dorsale/model_i18n.rb
DELETED
@@ -1,30 +0,0 @@
|
|
1
|
-
module Dorsale
|
2
|
-
module ModelI18n
|
3
|
-
def t(*args)
|
4
|
-
self.class.t(*args)
|
5
|
-
end
|
6
|
-
|
7
|
-
def ts
|
8
|
-
self.class.ts
|
9
|
-
end
|
10
|
-
|
11
|
-
def self.included(model)
|
12
|
-
model.instance_eval do
|
13
|
-
def t(*args)
|
14
|
-
if args.any?
|
15
|
-
human_attribute_name(*args)
|
16
|
-
else
|
17
|
-
model_name.human
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
def ts
|
22
|
-
model_name.human(count: 2)
|
23
|
-
end
|
24
|
-
|
25
|
-
end # instance_eval
|
26
|
-
end # def included
|
27
|
-
end # ModelI18n
|
28
|
-
end # Dorsale
|
29
|
-
|
30
|
-
ActiveRecord::Base.send(:include, ::Dorsale::ModelI18n)
|
data/lib/dorsale/model_to_s.rb
DELETED
data/lib/dorsale/search.rb
DELETED
@@ -1,34 +0,0 @@
|
|
1
|
-
module Dorsale
|
2
|
-
module Search
|
3
|
-
def self.included(klass)
|
4
|
-
klass.send(:extend, Dorsale::Search::ClassMethods)
|
5
|
-
end
|
6
|
-
|
7
|
-
module ClassMethods
|
8
|
-
def default_search_fields
|
9
|
-
fields = columns.map do |column|
|
10
|
-
"#{table_name}.#{column.name}"
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
def search(q, *fields)
|
15
|
-
words = q.to_s.parameterize.split("-")
|
16
|
-
fields = default_search_fields if fields.empty?
|
17
|
-
|
18
|
-
sql_query = words.map.with_index do |word, index|
|
19
|
-
fields.map do |field|
|
20
|
-
"(LOWER(CAST(#{field} AS TEXT)) LIKE :w#{index})"
|
21
|
-
end.join(" OR ")
|
22
|
-
end.map{ |e| "(#{e})" }.join(" AND ")
|
23
|
-
|
24
|
-
sql_params_a = words.map.with_index do |word, index|
|
25
|
-
["w#{index}".to_sym, "%#{word}%"]
|
26
|
-
end
|
27
|
-
|
28
|
-
sql_params_h = Hash[sql_params_a]
|
29
|
-
|
30
|
-
self.where(sql_query, sql_params_h)
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
@@ -1,113 +0,0 @@
|
|
1
|
-
require "rails_helper"
|
2
|
-
|
3
|
-
describe Dorsale::Flyboy::FoldersController, type: :controller do
|
4
|
-
routes { Dorsale::Engine.routes }
|
5
|
-
render_views
|
6
|
-
|
7
|
-
let(:user) { create(:user) }
|
8
|
-
|
9
|
-
before(:each) { sign_in(user) }
|
10
|
-
|
11
|
-
let(:folder){
|
12
|
-
create(:flyboy_folder)
|
13
|
-
}
|
14
|
-
|
15
|
-
describe '#index' do
|
16
|
-
context 'when applying filter' do
|
17
|
-
before(:each) do
|
18
|
-
Dorsale::Flyboy::Folder.destroy_all
|
19
|
-
@folder1 = create(:flyboy_folder, status: "open")
|
20
|
-
@folder2 = create(:flyboy_folder, status: "closed")
|
21
|
-
end
|
22
|
-
|
23
|
-
it 'should display both when not filtered' do
|
24
|
-
get :index
|
25
|
-
expect(assigns(:folders)).to eq [@folder2, @folder1]
|
26
|
-
end
|
27
|
-
|
28
|
-
it 'should filter by status closed' do
|
29
|
-
cookies["filters"] = {fb_status: "closed"}.to_json
|
30
|
-
get :index
|
31
|
-
expect(assigns(:folders)).to eq [@folder2]
|
32
|
-
end
|
33
|
-
|
34
|
-
it 'should filter by status open' do
|
35
|
-
cookies["filters"] = {fb_status: "open"}.to_json
|
36
|
-
get :index
|
37
|
-
expect(assigns(:folders)).to eq [@folder1]
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
context "when sorting" do
|
42
|
-
before do
|
43
|
-
Dorsale::Flyboy::Folder.destroy_all
|
44
|
-
@folder1 = create(:flyboy_folder, name: "Abc", progress: 100, status: "open")
|
45
|
-
@folder2 = create(:flyboy_folder, name: "dEF", progress: 0, status: "closed")
|
46
|
-
@folder3 = create(:flyboy_folder, name: "xyz", progress: 35, status: "closed")
|
47
|
-
end
|
48
|
-
|
49
|
-
it "sorting by name asc" do
|
50
|
-
get :index, params: {sort: "name"}
|
51
|
-
expect(assigns(:folders).to_a).to eq [@folder1, @folder2, @folder3]
|
52
|
-
end
|
53
|
-
|
54
|
-
it "sorting by name desc" do
|
55
|
-
get :index, params: {sort: "-name"}
|
56
|
-
expect(assigns(:folders).to_a).to eq [@folder3, @folder2, @folder1]
|
57
|
-
end
|
58
|
-
|
59
|
-
it "sorting by progress asc" do
|
60
|
-
get :index, params: {sort: "progress"}
|
61
|
-
expect(assigns(:folders).to_a).to eq [@folder2, @folder3, @folder1]
|
62
|
-
end
|
63
|
-
|
64
|
-
it "sorting by progress desc" do
|
65
|
-
get :index, params: {sort: "-progress"}
|
66
|
-
expect(assigns(:folders).to_a).to eq [@folder1, @folder3, @folder2]
|
67
|
-
end
|
68
|
-
|
69
|
-
it "sorting by status asc" do
|
70
|
-
get :index, params: {sort: "status"}
|
71
|
-
expect(assigns(:folders).to_a).to eq [@folder2, @folder3, @folder1]
|
72
|
-
end
|
73
|
-
|
74
|
-
it "sorting by status desc" do
|
75
|
-
get :index, params: {sort: "-status"}
|
76
|
-
expect(assigns(:folders).to_a).to eq [@folder1, @folder2, @folder3]
|
77
|
-
end
|
78
|
-
end
|
79
|
-
end
|
80
|
-
|
81
|
-
describe "#close" do
|
82
|
-
before(:each) do
|
83
|
-
@folder = create(:flyboy_folder, status: "open")
|
84
|
-
end
|
85
|
-
|
86
|
-
it "should close folder" do
|
87
|
-
patch :close, params: {id: @folder}
|
88
|
-
expect(@folder.reload.status).to eq "closed"
|
89
|
-
end
|
90
|
-
|
91
|
-
it "should redirect to folders path" do
|
92
|
-
patch :close, params: {id: @folder}
|
93
|
-
expect(response).to redirect_to flyboy_folders_path
|
94
|
-
end
|
95
|
-
end
|
96
|
-
|
97
|
-
describe "#open" do
|
98
|
-
before(:each) do
|
99
|
-
@folder = create(:flyboy_folder, status: "closed")
|
100
|
-
end
|
101
|
-
|
102
|
-
it "should open folder" do
|
103
|
-
patch :open, params: {id: @folder}
|
104
|
-
expect(@folder.reload.status).to eq "open"
|
105
|
-
end
|
106
|
-
|
107
|
-
it "should redirect to folder path" do
|
108
|
-
patch :open, params: {id: @folder}
|
109
|
-
expect(response).to redirect_to flyboy_folder_path(@folder)
|
110
|
-
end
|
111
|
-
end
|
112
|
-
|
113
|
-
end
|
@@ -1,103 +0,0 @@
|
|
1
|
-
require 'rails_helper'
|
2
|
-
|
3
|
-
describe Dorsale::Flyboy::Folder do
|
4
|
-
it { is_expected.to have_many(:tasks).dependent(:destroy) }
|
5
|
-
it { is_expected.to belong_to(:folderable) }
|
6
|
-
|
7
|
-
it { should validate_presence_of :name }
|
8
|
-
|
9
|
-
it "should validate the folder when not step is assigned" do
|
10
|
-
folder = build(:flyboy_folder)
|
11
|
-
expect(folder).to be_valid
|
12
|
-
end
|
13
|
-
|
14
|
-
it "should ensure that status has a valid value" do
|
15
|
-
folder = build(:flyboy_folder, status: 999)
|
16
|
-
expect(folder).to_not be_valid
|
17
|
-
end
|
18
|
-
|
19
|
-
it "should increase the version number" do
|
20
|
-
folder = create(:flyboy_folder)
|
21
|
-
expect(folder.version).to eq 1
|
22
|
-
folder.save
|
23
|
-
expect(folder.version).to eq 2
|
24
|
-
folder.save
|
25
|
-
expect(folder.version).to eq 3
|
26
|
-
end
|
27
|
-
|
28
|
-
it "should create tracking" do
|
29
|
-
Timecop.freeze DateTime.new(2013, 8, 1, 9, 13, 5)
|
30
|
-
|
31
|
-
folder1 = create(:flyboy_folder)
|
32
|
-
folder2 = create(:flyboy_folder)
|
33
|
-
folder3 = create(:flyboy_folder)
|
34
|
-
|
35
|
-
expect(folder1.tracking).to eq "130801-1"
|
36
|
-
expect(folder2.tracking).to eq "130801-2"
|
37
|
-
expect(folder3.tracking).to eq "130801-3"
|
38
|
-
end
|
39
|
-
|
40
|
-
it "revision should contain tracking and version" do
|
41
|
-
Timecop.freeze Time.parse("2012-12-21 12:00:00")
|
42
|
-
folder = create(:flyboy_folder)
|
43
|
-
expect(folder.revision).to eq "121221-1 1"
|
44
|
-
end
|
45
|
-
|
46
|
-
describe "#progress" do
|
47
|
-
it "update task should update folder progress" do
|
48
|
-
folder = create(:flyboy_folder)
|
49
|
-
task1 = create(:flyboy_task, taskable: folder, progress: 50)
|
50
|
-
task2 = create(:flyboy_task, taskable: folder, progress: 100)
|
51
|
-
expect(folder.reload.progress).to eq 75
|
52
|
-
task1.progress = 100
|
53
|
-
task1.save
|
54
|
-
expect(folder.reload.progress).to eq 100
|
55
|
-
end
|
56
|
-
|
57
|
-
it "delete task should update folder progress" do
|
58
|
-
folder = create(:flyboy_folder)
|
59
|
-
task1 = create(:flyboy_task, taskable: folder, progress: 50)
|
60
|
-
expect(folder.reload.progress).to eq 50
|
61
|
-
task1.destroy
|
62
|
-
expect(folder.reload.progress).to eq 0
|
63
|
-
end
|
64
|
-
|
65
|
-
it "should be 0 if new folder" do
|
66
|
-
expect(Dorsale::Flyboy::Folder.new.progress).to eq 0
|
67
|
-
end
|
68
|
-
end
|
69
|
-
|
70
|
-
describe "states" do
|
71
|
-
it "initial state should be open" do
|
72
|
-
expect(Dorsale::Flyboy::Folder.new.status).to eq "open"
|
73
|
-
end
|
74
|
-
|
75
|
-
it "open folder can be closed" do
|
76
|
-
folder = create(:flyboy_folder, status: "open")
|
77
|
-
expect(folder.close).to be true
|
78
|
-
expect(folder.status).to eq "closed"
|
79
|
-
end
|
80
|
-
|
81
|
-
it "closed folder can be reopened" do
|
82
|
-
folder = create(:flyboy_folder, status: "closed")
|
83
|
-
expect(folder.open).to be true
|
84
|
-
expect(folder.status).to eq "open"
|
85
|
-
end
|
86
|
-
|
87
|
-
it "open folder with undone tasks can't be closed" do
|
88
|
-
folder = create(:flyboy_folder, status: "open")
|
89
|
-
task = create(:flyboy_task, taskable: folder, done: false)
|
90
|
-
expect(folder.close).to be false
|
91
|
-
expect(folder.status).to eq "open"
|
92
|
-
end
|
93
|
-
|
94
|
-
it "open folder with all tasks done can be closed" do
|
95
|
-
folder = create(:flyboy_folder, status: "open")
|
96
|
-
task = create(:flyboy_task, taskable: folder, done: true)
|
97
|
-
expect(folder.close).to be true
|
98
|
-
expect(folder.status).to eq "closed"
|
99
|
-
end
|
100
|
-
|
101
|
-
end
|
102
|
-
|
103
|
-
end
|
@@ -1,44 +0,0 @@
|
|
1
|
-
require "rails_helper"
|
2
|
-
|
3
|
-
describe ::Dorsale::Flyboy::FoldersController, type: :routing do
|
4
|
-
describe "routing" do
|
5
|
-
routes { ::Dorsale::Engine.routes }
|
6
|
-
|
7
|
-
it "routes to #index" do
|
8
|
-
expect(get("flyboy/folders")).to route_to("dorsale/flyboy/folders#index")
|
9
|
-
end
|
10
|
-
|
11
|
-
it "routes to #new" do
|
12
|
-
expect(get("flyboy/folders/new")).to route_to("dorsale/flyboy/folders#new")
|
13
|
-
end
|
14
|
-
|
15
|
-
it "routes to #show" do
|
16
|
-
expect(get("flyboy/folders/1")).to route_to("dorsale/flyboy/folders#show", id: "1")
|
17
|
-
end
|
18
|
-
|
19
|
-
it "routes to #edit" do
|
20
|
-
expect(get("flyboy/folders/1/edit")).to route_to("dorsale/flyboy/folders#edit", id: "1")
|
21
|
-
end
|
22
|
-
|
23
|
-
it "routes to #create" do
|
24
|
-
expect(post("flyboy/folders")).to route_to("dorsale/flyboy/folders#create")
|
25
|
-
end
|
26
|
-
|
27
|
-
it "routes to #update" do
|
28
|
-
expect(patch("flyboy/folders/1")).to route_to("dorsale/flyboy/folders#update", id: "1")
|
29
|
-
end
|
30
|
-
|
31
|
-
it "routes to #destroy" do
|
32
|
-
expect(delete("flyboy/folders/1")).to route_to("dorsale/flyboy/folders#destroy", id: "1")
|
33
|
-
end
|
34
|
-
|
35
|
-
it "routes to #open" do
|
36
|
-
expect(patch("flyboy/folders/1/open")).to route_to("dorsale/flyboy/folders#open", id: "1")
|
37
|
-
end
|
38
|
-
|
39
|
-
it "routes to #close" do
|
40
|
-
expect(patch("flyboy/folders/1/close")).to route_to("dorsale/flyboy/folders#close", id: "1")
|
41
|
-
end
|
42
|
-
|
43
|
-
end
|
44
|
-
end
|