dorsale 3.14.3 → 3.14.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (136) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +3 -0
  3. data/Rakefile +2 -0
  4. data/app/pdfs/dorsale/application_pdf.rb +11 -1
  5. data/app/pdfs/dorsale/expense_gun/expense_pdf.rb +75 -0
  6. data/app/views/dorsale/expense_gun/expenses/_show_actions.html.slim +2 -0
  7. data/app/views/dorsale/expense_gun/expenses/show.pdf.ruby +3 -0
  8. data/lib/dorsale/version.rb +1 -1
  9. metadata +125 -358
  10. data/features/access.feature +0 -17
  11. data/features/billing_machine_invoices.feature +0 -261
  12. data/features/billing_machine_multiple_vat.feature +0 -53
  13. data/features/billing_machine_payment_terms.feature +0 -19
  14. data/features/billing_machine_quotations.feature +0 -193
  15. data/features/customer_vault_activity_types.feature +0 -19
  16. data/features/customer_vault_corporations.feature +0 -95
  17. data/features/customer_vault_filters.feature +0 -14
  18. data/features/customer_vault_individuals.feature +0 -35
  19. data/features/customer_vault_invoices.feature +0 -10
  20. data/features/customer_vault_links.feature +0 -54
  21. data/features/customer_vault_origins.feature +0 -19
  22. data/features/customer_vault_people.feature +0 -25
  23. data/features/customer_vault_search.feature +0 -22
  24. data/features/customer_vault_tasks.feature +0 -35
  25. data/features/expense_gun_categories.feature +0 -19
  26. data/features/expense_gun_expenses.feature +0 -60
  27. data/features/flyboy_task_comments.feature +0 -21
  28. data/features/flyboy_tasks.feature +0 -122
  29. data/features/flyboy_tasks_summary.feature +0 -22
  30. data/features/step_definitions/access_steps.rb +0 -15
  31. data/features/step_definitions/alexandrie_steps.rb +0 -25
  32. data/features/step_definitions/billing_machine_invoices_steps.rb +0 -377
  33. data/features/step_definitions/billing_machine_multiple_vat.rb +0 -19
  34. data/features/step_definitions/billing_machine_payment_terms_steps.rb +0 -42
  35. data/features/step_definitions/billing_machine_quotations_steps.rb +0 -248
  36. data/features/step_definitions/common_steps.rb +0 -91
  37. data/features/step_definitions/customer_vault_activity_types_steps.rb +0 -42
  38. data/features/step_definitions/customer_vault_corporations_steps.rb +0 -218
  39. data/features/step_definitions/customer_vault_filters_steps.rb +0 -37
  40. data/features/step_definitions/customer_vault_individuals_steps.rb +0 -67
  41. data/features/step_definitions/customer_vault_invoices_steps.rb +0 -7
  42. data/features/step_definitions/customer_vault_links_steps.rb +0 -73
  43. data/features/step_definitions/customer_vault_origins_steps.rb +0 -42
  44. data/features/step_definitions/customer_vault_people_steps.rb +0 -26
  45. data/features/step_definitions/customer_vault_search_steps.rb +0 -48
  46. data/features/step_definitions/customer_vault_tasks_steps.rb +0 -34
  47. data/features/step_definitions/expense_gun_categories_steps.rb +0 -50
  48. data/features/step_definitions/expense_gun_expenses_steps.rb +0 -135
  49. data/features/step_definitions/flyboy_task_comments_steps.rb +0 -10
  50. data/features/step_definitions/flyboy_tasks_steps.rb +0 -196
  51. data/features/step_definitions/tasks_summary_steps.rb +0 -30
  52. data/features/step_definitions/users_management_step.rb +0 -29
  53. data/features/support/env.rb +0 -8
  54. data/features/users_management.feature +0 -18
  55. data/spec/controllers/dorsale/alexandrie/attachments_controller_spec.rb +0 -145
  56. data/spec/controllers/dorsale/billing_machine/invoices_controller_spec.rb +0 -153
  57. data/spec/controllers/dorsale/billing_machine/quotations_controller_spec.rb +0 -24
  58. data/spec/controllers/dorsale/comments_controller_spec.rb +0 -50
  59. data/spec/controllers/dorsale/customer_vault/events_controller_spec.rb +0 -42
  60. data/spec/controllers/dorsale/customer_vault/people_controller_spec.rb +0 -129
  61. data/spec/controllers/dorsale/expense_gun/expenses_controller_spec.rb +0 -45
  62. data/spec/controllers/dorsale/flyboy/task_comments_controller_spec.rb +0 -40
  63. data/spec/controllers/dorsale/flyboy/tasks_controller_spec.rb +0 -349
  64. data/spec/factories/alexandrie_attachment_types.rb +0 -5
  65. data/spec/factories/alexandrie_attachments.rb +0 -16
  66. data/spec/factories/billing_machine_invoice_lines.rb +0 -9
  67. data/spec/factories/billing_machine_invoices.rb +0 -9
  68. data/spec/factories/billing_machine_payment_terms.rb +0 -5
  69. data/spec/factories/billing_machine_quotation_lines.rb +0 -9
  70. data/spec/factories/billing_machine_quotations.rb +0 -9
  71. data/spec/factories/customer_vault_activity_types.rb +0 -5
  72. data/spec/factories/customer_vault_corporations.rb +0 -13
  73. data/spec/factories/customer_vault_event.rb +0 -13
  74. data/spec/factories/customer_vault_individuals.rb +0 -17
  75. data/spec/factories/customer_vault_links.rb +0 -7
  76. data/spec/factories/customer_vault_origins.rb +0 -5
  77. data/spec/factories/dorsale_addresses.rb +0 -9
  78. data/spec/factories/dorsale_comments.rb +0 -7
  79. data/spec/factories/expense_gun_categories.rb +0 -7
  80. data/spec/factories/expense_gun_expense_lines.rb +0 -10
  81. data/spec/factories/expense_gun_expenses.rb +0 -13
  82. data/spec/factories/flyboy_task_comments.rb +0 -9
  83. data/spec/factories/flyboy_tasks.rb +0 -8
  84. data/spec/files/avatar.png +0 -0
  85. data/spec/files/pdf.pdf +0 -0
  86. data/spec/mailers/user_mailer_spec.rb +0 -21
  87. data/spec/models/dorsale/address_spec.rb +0 -46
  88. data/spec/models/dorsale/alexandrie/attachment_spec.rb +0 -36
  89. data/spec/models/dorsale/alexandrie/attachment_type_spec.rb +0 -11
  90. data/spec/models/dorsale/billing_machine/invoice_line_spec.rb +0 -52
  91. data/spec/models/dorsale/billing_machine/invoice_spec.rb +0 -258
  92. data/spec/models/dorsale/billing_machine/quotation_line_spec.rb +0 -51
  93. data/spec/models/dorsale/billing_machine/quotation_spec.rb +0 -213
  94. data/spec/models/dorsale/billing_machine_spec.rb +0 -57
  95. data/spec/models/dorsale/comment_spec.rb +0 -24
  96. data/spec/models/dorsale/customer_vault/activity_type_spec.rb +0 -10
  97. data/spec/models/dorsale/customer_vault/corporation_spec.rb +0 -33
  98. data/spec/models/dorsale/customer_vault/event_spec.rb +0 -22
  99. data/spec/models/dorsale/customer_vault/individual_spec.rb +0 -44
  100. data/spec/models/dorsale/customer_vault/link_spec.rb +0 -14
  101. data/spec/models/dorsale/customer_vault/origin_spec.rb +0 -8
  102. data/spec/models/dorsale/customer_vault/person_spec.rb +0 -112
  103. data/spec/models/dorsale/email_spec.rb +0 -39
  104. data/spec/models/dorsale/expense_gun/category_spec.rb +0 -9
  105. data/spec/models/dorsale/expense_gun/expense_line_spec.rb +0 -59
  106. data/spec/models/dorsale/expense_gun/expense_spec.rb +0 -176
  107. data/spec/models/dorsale/flyboy/task_comment_spec.rb +0 -54
  108. data/spec/models/dorsale/flyboy/task_spec.rb +0 -254
  109. data/spec/models/dorsale/i18n_spec.rb +0 -30
  110. data/spec/models/dorsale/users_spec.rb +0 -65
  111. data/spec/pdfs/dorsale/billing_machine/invoice_multiple_vat_pdf_spec.rb +0 -42
  112. data/spec/pdfs/dorsale/billing_machine/invoice_single_vat_pdf_spec.rb +0 -42
  113. data/spec/pdfs/dorsale/billing_machine/quotation_multiple_vat_pdf_spec.rb +0 -42
  114. data/spec/pdfs/dorsale/billing_machine/quotation_single_vat_pdf_spec.rb +0 -55
  115. data/spec/rails_helper.rb +0 -55
  116. data/spec/routing/dorsale/alexandrie/attachments_routing_spec.rb +0 -32
  117. data/spec/routing/dorsale/billing_machine/invoices_routing_spec.rb +0 -67
  118. data/spec/routing/dorsale/billing_machine/quotations_routing_spec.rb +0 -67
  119. data/spec/routing/dorsale/comments_routing_spec.rb +0 -23
  120. data/spec/routing/dorsale/customer_vault/activity_types_routing_spec.rb +0 -40
  121. data/spec/routing/dorsale/customer_vault/events_routing_spec.rb +0 -12
  122. data/spec/routing/dorsale/customer_vault/origins_routing_spec.rb +0 -40
  123. data/spec/routing/dorsale/customer_vault/people_routing_spec.rb +0 -109
  124. data/spec/routing/dorsale/expense_gun/expenses_routing_spec.rb +0 -62
  125. data/spec/routing/dorsale/flyboy/task_comments_routing_spec.rb +0 -11
  126. data/spec/routing/dorsale/flyboy/tasks_routing_spec.rb +0 -51
  127. data/spec/routing/dorsale/users_routing_spec.rb +0 -38
  128. data/spec/services/dorsale/billing_machine/quotation/copy_spec.rb +0 -55
  129. data/spec/services/dorsale/billing_machine/quotation/statistics.rb +0 -23
  130. data/spec/services/dorsale/billing_machine/quotation/to_invoice_spec.rb +0 -46
  131. data/spec/services/dorsale/expense_gun/expense/copy_spec.rb +0 -83
  132. data/spec/services/dorsale/flyboy/task/copy_spec.rb +0 -24
  133. data/spec/services/dorsale/flyboy/task/snoozer_spec.rb +0 -117
  134. data/spec/spec_helper.rb +0 -86
  135. data/spec/support/devise.rb +0 -3
  136. data/spec/support/message_delivery.rb +0 -5
@@ -1,37 +0,0 @@
1
- Given(/^an existing corporation with tags hello and world$/) do
2
- @corporation1 = create(:customer_vault_corporation, tag_list: "hello, world")
3
- end
4
-
5
- Given(/^an other existing corporation with tags hello and goodbye$/) do
6
- @corporation2 = create(:customer_vault_corporation, tag_list: "hello, goodbye")
7
- end
8
-
9
- Given(/^an other existing corporation with tag yeah$/) do
10
- @corporation3 = create(:customer_vault_corporation, tag_list: "yeah")
11
- end
12
-
13
- When(/^I go the to people list$/) do
14
- visit dorsale.customer_vault_people_path
15
- end
16
-
17
- When(/^I filter with tag hello$/) do
18
- select("hello")
19
- find(".filter-submit").click
20
- end
21
-
22
- Then(/^only first and second corporation appear$/) do
23
- expect(page).to have_content @corporation1.name
24
- expect(page).to have_content @corporation2.name
25
- expect(page).to have_no_content @corporation3.name
26
- end
27
-
28
- When(/^I add the second tag world$/) do
29
- select "world"
30
- find(".filter-submit").click
31
- end
32
-
33
- Then(/^only the first corporation appear$/) do
34
- expect(page).to have_content @corporation1.name
35
- expect(page).to have_no_content @corporation2.name
36
- expect(page).to have_no_content @corporation3.name
37
- end
@@ -1,67 +0,0 @@
1
- When(/^I create an new individual$/) do
2
- @individuals_count = Dorsale::CustomerVault::Individual.count
3
-
4
- visit dorsale.new_customer_vault_individual_path
5
- end
6
-
7
- When(/^I add his first_name, last_name and email$/) do
8
- fill_in "person_first_name", with: "Benoit"
9
- fill_in "person_last_name", with: "Gantaume"
10
- fill_in "person_email", with: "benoit@agilidee.com"
11
- end
12
-
13
- When(/^I fill the address$/) do
14
- fill_in "person_address_attributes_street", with: "3 Rue Marx Dormoy"
15
- fill_in "person_address_attributes_street_bis", with: ""
16
- fill_in "person_address_attributes_city", with: "Marseille"
17
- fill_in "person_address_attributes_zip", with: "13004"
18
- fill_in "person_address_attributes_country", with: "France"
19
- end
20
-
21
- When(/^I validate the new individual$/) do
22
- find("[type=submit]").click
23
- end
24
-
25
- Then(/^i see an error message for the missing names$/) do
26
- expect(page).to have_selector ".person_first_name.has-error"
27
- expect(page).to have_selector ".person_last_name.has-error"
28
- end
29
-
30
- Then(/^the individual is created$/) do
31
- expect(Dorsale::CustomerVault::Individual.count).to eq(@individuals_count + 1)
32
-
33
- @individual = Dorsale::CustomerVault::Individual.last_created
34
-
35
- expect(@individual.first_name).to eq "Benoit"
36
- expect(@individual.last_name).to eq "Gantaume"
37
- end
38
-
39
- When(/^I edit this individual$/) do
40
- visit dorsale.edit_customer_vault_individual_path(@individual)
41
- end
42
-
43
- When(/^I add tags to this individual$/) do
44
- page.execute_script %(
45
- $("#person_tag_list").append("<option value='mytag1'>mytag1</option>")
46
- $("#person_tag_list").append("<option value='mytag2'>mytag2</option>")
47
- )
48
-
49
- select "mytag1"
50
- select "mytag2"
51
- end
52
-
53
- When(/^I submit this individual$/) do
54
- find("[type=submit]").click
55
- end
56
-
57
- Given(/^an existing individual with tags$/) do
58
- @individual = create(:customer_vault_individual, tag_list: "mytag1, mytag2")
59
- end
60
-
61
- When(/^I remove tags to this individual$/) do
62
- unselect "mytag1"
63
- end
64
-
65
- When(/^I go on this individual$/) do
66
- visit dorsale.customer_vault_individual_path(@individual)
67
- end
@@ -1,7 +0,0 @@
1
- Given(/^this (?:corporation|individual|person) has an invoice$/) do
2
- @invoice = create(:billing_machine_invoice, customer: @person)
3
- end
4
-
5
- When(/^he go on he (?:corporation|individual|person) invoices page$/) do
6
- visit dorsale.invoices_customer_vault_person_path(@person)
7
- end
@@ -1,73 +0,0 @@
1
- Given(/^an existing corporation$/) do
2
- @corporation = create(:customer_vault_corporation)
3
- @person = @corporation
4
- end
5
-
6
- Given(/^an existing individual$/) do
7
- @individual = create(:customer_vault_individual)
8
- @person = @individual
9
- end
10
-
11
- Given(/^an existing link$/) do
12
- @link = create(:customer_vault_link)
13
- @individual = @link.alice
14
- @corporation = @link.bob
15
- end
16
-
17
- When(/^I navigate to the link section of the indidual details$/) do
18
- visit dorsale.customer_vault_individual_path(@individual)
19
- find("a[href$=links]").click
20
- end
21
-
22
- When(/^I add a new link to the corporation$/) do
23
- find("#context-main [href$='links/new']").click
24
- expect(current_path).to eq dorsale.new_customer_vault_corporation_link_path(@corporation)
25
- end
26
-
27
- When(/^I add a new link to the individual$/) do
28
- find("#context-main [href$='links/new']").click
29
- expect(current_path).to eq dorsale.new_customer_vault_individual_link_path(@individual)
30
- end
31
-
32
- When(/^I provide the link and the target corporation$/) do
33
- select @corporation.name
34
- fill_in "link_title", with: "Manager"
35
- end
36
-
37
- When(/^I validate the link$/) do
38
- find("[type=submit]").click
39
- end
40
-
41
- When(/^I edit the link$/) do
42
- find(".person .pull-right .link_update").click
43
- end
44
-
45
- When(/^I change the title$/) do
46
- fill_in "link_title", with: "Manager 2"
47
- end
48
-
49
- When(/^I navigate to the link section of the corporation details$/) do
50
- visit dorsale.customer_vault_corporation_path(@corporation)
51
- find("a[href$=links]").click
52
- end
53
-
54
- When(/^I provide the link and the target individual$/) do
55
- select @individual.name
56
- fill_in "link_title", with: "Manager"
57
- end
58
-
59
- When(/^I delete the link$/) do
60
- find(".person .pull-right .link_delete").click
61
- end
62
-
63
- Then(/^the new link is displayed$/) do
64
- expect(page).to have_selector ".title", text: "Manager"
65
- end
66
-
67
- Then(/^the edited link is displayed$/) do
68
- expect(page).to have_selector ".title", text: "Manager 2"
69
- end
70
-
71
- Then(/^the targeted link is removed$/) do
72
- expect(page).to_not have_selector ".title", text: "Manager"
73
- end
@@ -1,42 +0,0 @@
1
- Given(/^the user goes on the new origin page$/) do
2
- visit dorsale.customer_vault_origins_path
3
- find(".link_create").click
4
- end
5
-
6
- When(/^he fills the origin's information$/) do
7
- fill_in "origin_name", with: "Origin Name"
8
- end
9
-
10
- When(/^creates a new origin$/) do
11
- find("[type=submit]").click
12
- end
13
-
14
- Then(/^he is redirected on the origins page$/) do
15
- expect(current_path).to eq dorsale.customer_vault_origins_path
16
- end
17
-
18
- Then(/^the origin is added to the origin list$/) do
19
- expect(page).to have_content "Origin Name"
20
- end
21
-
22
- Given(/^an existing origin$/) do
23
- @origin = create(:customer_vault_origin)
24
- end
25
-
26
- When(/^I edit the origin$/) do
27
- visit dorsale.customer_vault_origins_path
28
- find(".link_update").click
29
- end
30
-
31
- Then(/^the current origin's name should be pre\-filled$/) do
32
- expect(page).to have_field("origin_name", with: @origin.name)
33
- end
34
-
35
- When(/^he validates the new origin$/) do
36
- fill_in "origin_name", with: "New Origin Name"
37
- find("[type=submit]").click
38
- end
39
-
40
- Then(/^the origin's label is updated$/) do
41
- expect(page).to have_content "New Origin Name"
42
- end
@@ -1,26 +0,0 @@
1
- When(/^I export people list$/) do
2
- find("[href$=xlsx]").click
3
- end
4
-
5
- Then(/^the file is downloaded$/) do
6
- # Nothing to do, error appears in previous step if any problem
7
- end
8
-
9
- Given(/^a very long comment on this person$/) do
10
- text = Faker::Lorem.paragraph(30)
11
- @comment = create(:customer_vault_event_comment, person: @person, text: text)
12
- end
13
-
14
- Then(/^I see the truncated comment$/) do
15
- expect(page).to have_selector(".comment-text-truncated")
16
- expect(page).to have_no_selector(".comment-text")
17
- end
18
-
19
- Then(/^I see the full comment$/) do
20
- expect(page).to have_selector(".comment-text")
21
- expect(page).to have_no_selector(".comment-text-truncated")
22
- end
23
-
24
- Given(/^a short comment on this person$/) do
25
- @comment = create(:customer_vault_event_comment, person: @person, text: "i am short")
26
- end
@@ -1,48 +0,0 @@
1
- Lorsqu(/^he go to the people list$/) do
2
- visit dorsale.customer_vault_people_path
3
- end
4
-
5
- Etantdonné(/^existing individuals$/) do
6
- @individual1 = create(:customer_vault_individual, first_name: "Jean", last_name: "DUPONT")
7
- @individual2 = create(:customer_vault_individual, first_name: "Laurent", last_name: "DURAND")
8
- end
9
-
10
- Etantdonné(/^existing corporations$/) do
11
- @corporation1 = create(:customer_vault_corporation, name: "aaa", email: "contact@aaa.com")
12
- @corporation2 = create(:customer_vault_corporation, name: "zzz", email: "contact@zzz.com")
13
- end
14
-
15
- Lorsqu(/^he search an individual by first name$/) do
16
- fill_in "q", with: "Jean"
17
- find(".search-submit").click
18
- end
19
-
20
- Alors(/^this individual appear in search results$/) do
21
- expect(page).to have_content "Jean"
22
- expect(page).to have_content "DUPONT"
23
- end
24
-
25
- Alors(/^other individuals do not appear in search results$/) do
26
- expect(page).to have_no_content "Laurent"
27
- expect(page).to have_no_content "DURAND"
28
- end
29
-
30
- Lorsqu(/^he search an individual by last name$/) do
31
- fill_in "q", with: "DUPONT"
32
- find(".search-submit").click
33
- end
34
-
35
- Lorsqu(/^he search a corporation by name$/) do
36
- fill_in "q", with: "aaa"
37
- find(".search-submit").click
38
- end
39
-
40
- Alors(/^this corporation appear in search results$/) do
41
- expect(page).to have_content "aaa"
42
- expect(page).to have_content "contact@aaa.com"
43
- end
44
-
45
- Alors(/^other corporations do not appear in search results$/) do
46
- expect(page).to have_no_content "zzz"
47
- expect(page).to have_no_content "contact@zzz.com"
48
- end
@@ -1,34 +0,0 @@
1
- When(/^I go on the tasks section$/) do
2
- find("#person-tabs a[href$='tasks']").click
3
- end
4
-
5
- When(/^I create a task on this person$/) do
6
- @tasks_count = ::Dorsale::Flyboy::Task.count
7
- find("#context-main a[href*='tasks/new']").click
8
- fill_in :task_name, with: "YepYep"
9
- fill_in :task_description, with: "Trololo"
10
- find("[type=submit]").click
11
- end
12
-
13
- Then(/^the person task is created$/) do
14
- expect(::Dorsale::Flyboy::Task.count).to eq(@tasks_count + 1)
15
- @task = ::Dorsale::Flyboy::Task.last_created
16
- person = @corporation || @individual || @person
17
- expect(current_path).to eq dorsale.tasks_customer_vault_person_path(person)
18
- end
19
-
20
- Then(/^the task appear$/) do
21
- expect(page).to have_content "YepYep"
22
- end
23
-
24
- When(/^I go on the general tasks page$/) do
25
- visit dorsale.flyboy_tasks_path
26
- end
27
-
28
- When(/^I filter tasks$/) do
29
- find(".filter-submit").click
30
- end
31
-
32
- Then(/^I an redirected on the tasks tab$/) do
33
- expect(current_path).to eq dorsale.tasks_customer_vault_person_path(@individual)
34
- end
@@ -1,50 +0,0 @@
1
- Given(/^the user goes on the new expense category page$/) do
2
- visit dorsale.expense_gun_categories_path
3
- find(".link_create").click
4
- end
5
-
6
- When(/^he fills the category's information$/) do
7
- fill_in "category_name", with: "Category Name"
8
- fill_in "category_code", with: "Category Code"
9
- select "Oui"
10
- end
11
-
12
- When(/^creates a new expense category$/) do
13
- find("[type=submit]").click
14
- end
15
-
16
- Then(/^the category is added to the category list$/) do
17
- expect(page).to have_content "Category Name"
18
- expect(page).to have_content "Category Code"
19
- expect(page).to have_css(".fa-check")
20
- end
21
-
22
- Given(/^an existing expense category$/) do
23
- @category = create(:expense_gun_category, vat_deductible: true)
24
- end
25
-
26
- When(/^I edit the expense category$/) do
27
- visit dorsale.expense_gun_categories_path
28
- find(".link_update").click
29
- end
30
-
31
- Then(/^the current expense category's label should be pre\-filled$/) do
32
- expect(page).to have_field("category_name", with: @category.name)
33
- end
34
-
35
- When(/^he validates the new expense category$/) do
36
- fill_in "category_name", with: "New Category Name"
37
- fill_in "category_code", with: "New Category Code"
38
- select "Non"
39
- find("[type=submit]").click
40
- end
41
-
42
- Then(/^he is redirected on the expense categories page$/) do
43
- expect(current_path).to eq dorsale.expense_gun_categories_path
44
- end
45
-
46
- Then(/^the expense category's label is updated$/) do
47
- expect(page).to have_content "New Category Name"
48
- expect(page).to have_content "New Category Code"
49
- expect(page).to have_css(".fa-remove")
50
- end
@@ -1,135 +0,0 @@
1
- When(/^I go on the expenses page$/) do
2
- visit dorsale.expense_gun_expenses_path
3
- end
4
-
5
- Then(/^I see (\d+) expenses?$/) do |n|
6
- expect(page).to have_selector(".expense", count: n.to_i)
7
- end
8
-
9
- When(/^I create a new expense$/) do
10
- @expenses_count = Dorsale::ExpenseGun::Expense.count
11
- @expense_lines_count = Dorsale::ExpenseGun::ExpenseLine.count
12
-
13
- find("[href$='expenses/new']").click
14
- fill_in :expense_name, with: "ExpenseName"
15
-
16
- within all(".nested-fields").first do
17
- find("input[id$='_name']").set "ExpenseLine1Name"
18
- find("input[id$='_date']").set "2015-06-21"
19
- select @category.name
20
- find("input[id$='_total_all_taxes']").set "100"
21
- find("input[id$='_vat']").set "20"
22
- end
23
-
24
- find(".add_fields").click
25
- expect(page).to have_selector(".nested-fields", count: 2)
26
-
27
- within all(".nested-fields").last do
28
- find("input[id$='_name']").set "ExpenseLine2Name"
29
- find("input[id$='_date']").set "2015-06-12"
30
- select @category.name
31
- find("input[id$='_total_all_taxes']").set "200"
32
- find("input[id$='_vat']").set "40"
33
- end
34
-
35
- find("[type=submit]").click
36
- end
37
-
38
- Then(/^the expense is created$/) do
39
- expect(Dorsale::ExpenseGun::Expense.count).to eq(@expenses_count + 1)
40
- expect(Dorsale::ExpenseGun::ExpenseLine.count).to eq(@expense_lines_count + 2)
41
-
42
- @expense = Dorsale::ExpenseGun::Expense.last_created
43
-
44
- expect(@expense.name).to eq "ExpenseName"
45
- expect(@expense.expense_lines.first.name).to eq "ExpenseLine1Name"
46
- end
47
-
48
- Then(/^I am redirected on the expense page$/) do
49
- expect(current_path).to eq dorsale.expense_gun_expense_path(@expense)
50
- end
51
-
52
- Then(/^I see (\d+) expense lines?$/) do |n|
53
- expect(page).to have_selector(".expense-line", count: n.to_i)
54
- end
55
-
56
- Given(/^an existing expense$/) do
57
- @expense = create(:expense_gun_expense)
58
- end
59
-
60
- When(/^I update the expense$/) do
61
- @expenses_count = Dorsale::ExpenseGun::Expense.count
62
- @expense_lines_count = Dorsale::ExpenseGun::ExpenseLine.count
63
-
64
- find("#main [href$=edit]").click
65
-
66
- fill_in :expense_name, with: "NewExpenseName"
67
- all(".remove_fields").sample.click
68
-
69
- find("[type=submit]").click
70
- end
71
-
72
- Then(/^the expense is update$/) do
73
- expect(Dorsale::ExpenseGun::Expense.count).to eq(@expenses_count)
74
- expect(Dorsale::ExpenseGun::ExpenseLine.count).to eq(@expense_lines_count - 1)
75
-
76
- @expense.reload
77
-
78
- expect(@expense.name).to eq "NewExpenseName"
79
- end
80
-
81
- When(/^I submit the expense$/) do
82
- find("[href$='/submit']").click
83
- end
84
-
85
- Then(/^I am redirect to the expenses page$/) do
86
- wait_for { current_path }.to eq dorsale.expense_gun_expenses_path
87
- end
88
-
89
- Then(/^the expense state is "([^"]*)"$/) do |new_state|
90
- expect(@expense.reload.state).to eq new_state
91
- end
92
-
93
- Given(/^the expense is submitted$/) do
94
- @expense.update_columns(state: "submitted")
95
- end
96
-
97
- When(/^I cancel the expense$/) do
98
- find("[href$='/cancel']").click
99
- end
100
-
101
- When(/^I accept the expense$/) do
102
- find("[href$='/accept']").click
103
- end
104
-
105
- When(/^I refuse the expense$/) do
106
- find("[href$='/refuse']").click
107
- end
108
-
109
- Then(/^I am redirect to the expense page$/) do
110
- wait_for { current_path }.to include dorsale.expense_gun_expense_path(@expense)
111
- end
112
-
113
- When(/^I go on the expense page$/) do
114
- visit dorsale.expense_gun_expense_path(@expense)
115
- end
116
-
117
- When(/^I copy the expense$/) do
118
- @expenses_count = Dorsale::ExpenseGun::Expense.count
119
-
120
- find("[href$=copy]").click
121
- expect(page).to have_selector("form#new_expense [type=submit]")
122
-
123
- all(".nested-fields").each do |line|
124
- within line do
125
- find("input[id$='_date']").set "12/06/2015"
126
- end
127
- end
128
-
129
- find("form#new_expense [type=submit]").click
130
- end
131
-
132
- Then(/^an expense copy is created$/) do
133
- expect(Dorsale::ExpenseGun::Expense.count).to eq(@expenses_count + 1)
134
- @expense = Dorsale::ExpenseGun::Expense.last_created
135
- end