Add and apply LineContinuationSpacing rubocop rule

So now we're consistent when separating multiline strings.
This commit is contained in:
Javi Martín
2023-07-18 03:23:27 +02:00
parent f5c2a3d4ef
commit 96a0aa2a88
25 changed files with 179 additions and 176 deletions

View File

@@ -95,6 +95,9 @@ Layout/IndentationWidth:
Layout/LeadingEmptyLines:
Enabled: true
Layout/LineContinuationSpacing:
Enabled: true
Layout/LineEndStringConcatenationIndentation:
Enabled: true

View File

@@ -1,24 +1,24 @@
section "Creating Geozones" do
Geozone.create!(name: I18n.t("seeds.geozones.north_district"),
external_code: "001", census_code: "01",
html_map_coordinates: "30,139,45,153,77,148,107,165,138,201,146,218,186,198,216,"\
"196,233,203,240,215,283,194,329,185,377,184,388,165,369,126,333,113,334,84,320,"\
html_map_coordinates: "30,139,45,153,77,148,107,165,138,201,146,218,186,198,216," \
"196,233,203,240,215,283,194,329,185,377,184,388,165,369,126,333,113,334,84,320," \
"66,286,73,258,65,265,57,249,47,207,58,159,84,108,85,72,101,51,114")
Geozone.create!(name: I18n.t("seeds.geozones.west_district"),
external_code: "002", census_code: "02",
html_map_coordinates: "42,153,31,176,24,202,20,221,44,235,59,249,55,320,30,354,"\
"31,372,52,396,64,432,89,453,116,432,149,419,162,412,165,377,172,357,189,352,228,"\
"327,246,313,262,297,234,291,210,284,193,284,176,294,158,303,154,310,146,289,140,"\
html_map_coordinates: "42,153,31,176,24,202,20,221,44,235,59,249,55,320,30,354," \
"31,372,52,396,64,432,89,453,116,432,149,419,162,412,165,377,172,357,189,352,228," \
"327,246,313,262,297,234,291,210,284,193,284,176,294,158,303,154,310,146,289,140," \
"268,138,246,135,236,139,222,151,214,136,197,120,179,99,159,85,149,65,149,56,149")
Geozone.create!(name: I18n.t("seeds.geozones.east_district"),
external_code: "003", census_code: "03",
html_map_coordinates: "175,353,162,378,161,407,153,416,167,432,184,447,225,426,"\
"250,409,283,390,298,369,344,363,351,334,356,296,361,267,376,245,378,185,327,188,"\
"281,195,239,216,245,221,245,232,261,244,281,238,300,242,304,251,285,262,278,277,"\
html_map_coordinates: "175,353,162,378,161,407,153,416,167,432,184,447,225,426," \
"250,409,283,390,298,369,344,363,351,334,356,296,361,267,376,245,378,185,327,188," \
"281,195,239,216,245,221,245,232,261,244,281,238,300,242,304,251,285,262,278,277," \
"267,294,249,312,219,333,198,346,184,353")
Geozone.create!(name: I18n.t("seeds.geozones.central_district"),
external_code: "004", census_code: "04",
html_map_coordinates: "152,308,137,258,133,235,147,216,152,214,186,194,210,196,"\
"228,202,240,216,241,232,263,243,293,241,301,245,302,254,286,265,274,278,267,296,"\
html_map_coordinates: "152,308,137,258,133,235,147,216,152,214,186,194,210,196," \
"228,202,240,216,241,232,263,243,293,241,301,245,302,254,286,265,274,278,267,296," \
"243,293,226,289,209,285,195,283,177,297")
end

View File

@@ -1,13 +1,13 @@
section "Creating Newsletters" do
newsletter_body = [
"We choose to go to the moon in this decade and do the other things, not because they are easy"\
", but because they are hard, because that goal will serve to organize and measure the best of"\
" our energies and skills, because that challenge is one that we are willing to accept, one we"\
"We choose to go to the moon in this decade and do the other things, not because they are easy" \
", but because they are hard, because that goal will serve to organize and measure the best of" \
" our energies and skills, because that challenge is one that we are willing to accept, one we" \
" are unwilling to postpone, and one which we intend to win.",
"Spaceflights cannot be stopped. This is not the work of any one man or even a group of men."\
" It is a historical process which mankind is carrying out in accordance with the natural laws"\
"Spaceflights cannot be stopped. This is not the work of any one man or even a group of men." \
" It is a historical process which mankind is carrying out in accordance with the natural laws" \
" of human development.",
"Many say exploration is part of our destiny, but its actually our duty to future generations"\
"Many say exploration is part of our destiny, but its actually our duty to future generations" \
" and their quest to ensure the survival of the human species."
]

View File

@@ -6,7 +6,7 @@ section "Creating Settings" do
"feature.featured_proposals": "true",
"feature.map": "true",
"instagram_handle": "CONSUL DEMOCRACY",
"meta_description": "Citizen participation tool for an open, "\
"meta_description": "Citizen participation tool for an open, " \
"transparent and democratic government",
"meta_keywords": "citizen participation, open government",
"meta_title": "CONSUL DEMOCRACY",

View File

@@ -66,7 +66,7 @@ class CreateSharedExtensionsSchema < ActiveRecord::Migration[6.0]
execute statement
else
log_warning(
"GRANT CREATE ON DATABASE #{query_value("SELECT CURRENT_DATABASE()")} "\
"GRANT CREATE ON DATABASE #{query_value("SELECT CURRENT_DATABASE()")} " \
"TO #{query_value("SELECT CURRENT_USER")}"
)
log_warning(statement)

View File

@@ -61,7 +61,7 @@ describe Budgets::BudgetComponent do
render_inline Budgets::BudgetComponent.new(budget)
expect(page).to have_css ".budget-header.with-background-image"
expect(page).to have_css ".budget-header[style*='background-image:']"\
expect(page).to have_css ".budget-header[style*='background-image:']" \
"[style*='url(\\''][style*='clippy(with_brackets).jpg\\'']"
end
@@ -71,7 +71,7 @@ describe Budgets::BudgetComponent do
render_inline Budgets::BudgetComponent.new(budget)
expect(page).to have_css ".budget-header.with-background-image"
expect(page).to have_css ".budget-header[style*='background-image:']"\
expect(page).to have_css ".budget-header[style*='background-image:']" \
"[style*='url(\\''][style*='clippy_with_\\\\\'quotes\\\\\'.jpg']"
end
end

View File

@@ -73,36 +73,36 @@ describe Dashboard::Mailer do
expect(email).to deliver_to(proposal.author)
expect(email).to have_subject("Your draft citizen proposal is created")
expect(email).to have_body_text("Hi #{proposal.author.name}!")
expect(email).to have_body_text("Your #{proposal.title} proposal has been "\
expect(email).to have_body_text("Your #{proposal.title} proposal has been " \
"successfully created.")
expect(email).to have_body_text("Take advantage that your proposal is not public yet and "\
expect(email).to have_body_text("Take advantage that your proposal is not public yet and " \
"get ready to contact a lot of people.")
expect(email).to have_body_text("When you are ready publish your citizen proposal from this")
expect(email).to have_link "link", href: proposal_dashboard_url(proposal)
expect(email).to have_body_text("We know that creating a proposal with a hook and getting "\
"the necessary support can seem complicated. But don't "\
expect(email).to have_body_text("We know that creating a proposal with a hook and getting " \
"the necessary support can seem complicated. But don't " \
"worry because we are going to help you!")
expect(email).to have_body_text("You have a tool that will be your new best ally: "\
expect(email).to have_body_text("You have a tool that will be your new best ally: " \
"The Citizen Proposals panel.")
expect(email).to have_body_text("Enter every day in the panel of your proposal to use the "\
expect(email).to have_body_text("Enter every day in the panel of your proposal to use the " \
"tips and resources that we will share with you.")
expect(email).to have_body_text("These tips, actions and resources will give you ideas and "\
"also practical solutions to get more support and a wider "\
expect(email).to have_body_text("These tips, actions and resources will give you ideas and " \
"also practical solutions to get more support and a wider " \
"community. Dont forget them!")
expect(email).to have_body_text("As you gain more support, you will unlock new and better "\
"resources. At the moment, you have an e-mail template to "\
"send massively to all your contacts, a poster to print, "\
"among other features and rewards that you will discover. "\
"Dont stop adding support and we will not stop rewarding "\
expect(email).to have_body_text("As you gain more support, you will unlock new and better " \
"resources. At the moment, you have an e-mail template to " \
"send massively to all your contacts, a poster to print, " \
"among other features and rewards that you will discover. " \
"Dont stop adding support and we will not stop rewarding " \
"and helping you!")
expect(email).to have_body_text("You have #{Setting["months_to_archive_proposals"]} months "\
"since you publish the proposal to get "\
"#{Setting["votes_for_proposal_success"]} support and your "\
"proposal can become a reality. But the first days are the "\
expect(email).to have_body_text("You have #{Setting["months_to_archive_proposals"]} months " \
"since you publish the proposal to get " \
"#{Setting["votes_for_proposal_success"]} support and your " \
"proposal can become a reality. But the first days are the " \
"most important. It is a challenge. Get ready!")
expect(email).to have_body_text("And for you to start with all the motivation,")
expect(email).to have_body_text("here you have several resources and a whole list of "\
"tips that will come to you every day to prepare the "\
expect(email).to have_body_text("here you have several resources and a whole list of " \
"tips that will come to you every day to prepare the " \
"broadcast!")
expect(email).to have_body_text("Go ahead, discover them!")
end
@@ -135,33 +135,33 @@ describe Dashboard::Mailer do
expect(email).to deliver_from("CONSUL <noreply@consul.dev>")
expect(email).to deliver_to(proposal.author)
expect(email).to have_subject("Your citizen proposal is already "\
expect(email).to have_subject("Your citizen proposal is already " \
"published. Don't stop spreading!")
expect(email).to have_body_text("Congratulations #{proposal.author.name}! Your proposal "\
expect(email).to have_body_text("Congratulations #{proposal.author.name}! Your proposal " \
"#{proposal.title} has been created successfully.")
expect(email).to have_body_text("And now, go for your first 100 supports!")
expect(email).to have_body_text("Why 100?")
expect(email).to have_body_text("Our experience tells us that the first day is fundamental. "\
"Because in addition to having the energy to launch "\
"something new, being a newly published proposal, you will "\
"have the important visibility of being among the new "\
expect(email).to have_body_text("Our experience tells us that the first day is fundamental. " \
"Because in addition to having the energy to launch " \
"something new, being a newly published proposal, you will " \
"have the important visibility of being among the new " \
"proposals highlighted.")
expect(email).to have_body_text("Get 100 supports on the first day, and you will have "\
expect(email).to have_body_text("Get 100 supports on the first day, and you will have " \
"a first community to back you up.")
expect(email).to have_body_text("That is why we challenge you to get it, but not without "\
expect(email).to have_body_text("That is why we challenge you to get it, but not without " \
"a lot of help!")
expect(email).to have_body_text("Remember that in your Proposal Panel you have new "\
"resources available and recommendations for "\
expect(email).to have_body_text("Remember that in your Proposal Panel you have new " \
"resources available and recommendations for " \
"dissemination actions.")
expect(email).to have_body_text("Come in every day to see your progress and use the tips "\
"and resources we will share with you. They are ideas and "\
expect(email).to have_body_text("Come in every day to see your progress and use the tips " \
"and resources we will share with you. They are ideas and " \
"also practical solutions to get the support you need.")
expect(email).to have_body_text("As you get more support, you will unlock new and better "\
"resources. Do not stop adding support and we will not stop "\
expect(email).to have_body_text("As you get more support, you will unlock new and better " \
"resources. Do not stop adding support and we will not stop " \
"rewarding and helping you!")
expect(email).to have_body_text("And for you to start at full speed...")
expect(email).to have_body_text("Here is a great resource at your disposal!")
expect(email).to have_body_text("You will also find this new recommended dissemination "\
expect(email).to have_body_text("You will also find this new recommended dissemination " \
"action...")
expect(email).to have_body_text("You sure have more resources to use!")
expect(email).to have_body_text("Go ahead, discover them!")

View File

@@ -10,16 +10,16 @@ RSpec.describe Legislation::Annotation, type: :model do
end
it "calculates the context for multinode annotations" do
quote = "ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam"\
" erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex"\
" ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum"\
" dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril"\
" delenit augue duis dolore te feugait nulla facilisi."\
"\n\n"\
"Expetenda tincidunt in sed, ex partem placerat sea, porro commodo ex eam. His putant aeterno interesset at. Usu ea mundi"\
" tincidunt, omnium virtute aliquando ius ex. Ea aperiri sententiae duo. Usu nullam dolorum quaestio ei, sit vidit facilisis"\
" ea. Per ne impedit iracundia neglegentur. Consetetur neglegentur eum ut, vis animal legimus inimicus id."\
"\n\n"\
quote = "ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam" \
" erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex" \
" ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum" \
" dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril" \
" delenit augue duis dolore te feugait nulla facilisi." \
"\n\n" \
"Expetenda tincidunt in sed, ex partem placerat sea, porro commodo ex eam. His putant aeterno interesset at. Usu ea mundi" \
" tincidunt, omnium virtute aliquando ius ex. Ea aperiri sententiae duo. Usu nullam dolorum quaestio ei, sit vidit facilisis" \
" ea. Per ne impedit iracundia neglegentur. Consetetur neglegentur eum ut, vis animal legimus inimicus id." \
"\n\n" \
"His audiam"
annotation = create(
:legislation_annotation,
@@ -28,24 +28,24 @@ RSpec.describe Legislation::Annotation, type: :model do
ranges: [{ "start" => "/p[1]", "startOffset" => 6, "end" => "/p[3]", "endOffset" => 11 }]
)
context = "Lorem <span class=annotator-hl>ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt"\
" ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper"\
" suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit"\
" esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui"\
" blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.\n\nExpetenda tincidunt in sed, ex"\
" partem placerat sea, porro commodo ex eam. His putant aeterno interesset at. Usu ea mundi tincidunt, omnium virtute"\
" aliquando ius ex. Ea aperiri sententiae duo. Usu nullam dolorum quaestio ei, sit vidit facilisis ea. Per ne impedit"\
" iracundia neglegentur. Consetetur neglegentur eum ut, vis animal legimus inimicus id.\n\nHis audiam</span>deserunt in, eum"\
" ubique voluptatibus te. In reque dicta usu. Ne rebum dissentiet eam, vim omnis deseruisse id. Ullum deleniti vituperata at"\
" quo, insolens complectitur te eos, ea pri dico munere propriae. Vel ferri facilis ut, qui paulo ridens praesent ad. Possim"\
context = "Lorem <span class=annotator-hl>ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt" \
" ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper" \
" suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit" \
" esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui" \
" blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.\n\nExpetenda tincidunt in sed, ex" \
" partem placerat sea, porro commodo ex eam. His putant aeterno interesset at. Usu ea mundi tincidunt, omnium virtute" \
" aliquando ius ex. Ea aperiri sententiae duo. Usu nullam dolorum quaestio ei, sit vidit facilisis ea. Per ne impedit" \
" iracundia neglegentur. Consetetur neglegentur eum ut, vis animal legimus inimicus id.\n\nHis audiam</span>deserunt in, eum" \
" ubique voluptatibus te. In reque dicta usu. Ne rebum dissentiet eam, vim omnis deseruisse id. Ullum deleniti vituperata at" \
" quo, insolens complectitur te eos, ea pri dico munere propriae. Vel ferri facilis ut, qui paulo ridens praesent ad. Possim" \
" alterum qui cu. Accusamus consulatu ius te, cu decore soleat appareat usu."
expect(annotation.context).to eq(context)
end
it "calculates the context for multinode annotations 2" do
quote = "Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla"\
" facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore"\
" te feugait nulla facilisi.\r\n\r\nExpetenda tincidunt in sed, ex partem placerat sea, porro commodo ex eam. His putant"\
quote = "Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla" \
" facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore" \
" te feugait nulla facilisi.\r\n\r\nExpetenda tincidunt in sed, ex partem placerat sea, porro commodo ex eam. His putant" \
" aeterno interesset at. Usu ea mundi tincidunt, omnium virtute aliquando ius ex. Ea aperiri sententiae duo"
annotation = create(
:legislation_annotation,
@@ -54,44 +54,44 @@ RSpec.describe Legislation::Annotation, type: :model do
ranges: [{ "start" => "/p[1]", "startOffset" => 273, "end" => "/p[2]", "endOffset" => 190 }]
)
context = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna"\
" aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut"\
" aliquip ex ea commodo consequat. <span class=annotator-hl>Duis autem vel eum iriure dolor in hendrerit in vulputate velit"\
" esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui"\
" blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.\r\n\r\nExpetenda tincidunt in sed, ex"\
" partem placerat sea, porro commodo ex eam. His putant aeterno interesset at. Usu ea mundi tincidunt, omnium virtute"\
" aliquando ius ex. Ea aperiri sententiae duo</span>. Usu nullam dolorum quaestio ei, sit vidit facilisis ea. Per ne impedit"\
context = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna" \
" aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut" \
" aliquip ex ea commodo consequat. <span class=annotator-hl>Duis autem vel eum iriure dolor in hendrerit in vulputate velit" \
" esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui" \
" blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.\r\n\r\nExpetenda tincidunt in sed, ex" \
" partem placerat sea, porro commodo ex eam. His putant aeterno interesset at. Usu ea mundi tincidunt, omnium virtute" \
" aliquando ius ex. Ea aperiri sententiae duo</span>. Usu nullam dolorum quaestio ei, sit vidit facilisis ea. Per ne impedit" \
" iracundia neglegentur. Consetetur neglegentur eum ut, vis animal legimus inimicus id."
expect(annotation.context).to eq(context)
end
it "calculates the context for multinode annotations 3" do
body = "The GNU Affero General Public License is a free, copyleft license for software and other kinds of works, specifically designed"\
" to ensure cooperation with the community in the case of network server software.\r\n\r\nThe licenses for most software and"\
" other practical works are designed to take away your freedom to share and change the works. By contrast, our General Public"\
" Licenses are intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free"\
" software for all its users.\r\n\r\nWhen we speak of free software, we are referring to freedom, not price. Our General"\
" Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for"\
" them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces"\
" of it in new free programs, and that you know you can do these things.\r\n\r\nDevelopers that use our General Public Licenses"\
" protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License which gives you"\
" legal permission to copy, distribute and/or modify the software.\r\n\r\nA secondary benefit of defending all users' freedom"\
" is that improvements made in alternate versions of the program, if they receive widespread use, become available for other"\
" developers to incorporate. Many developers of free software are heartened and encouraged by the resulting cooperation."\
" However, in the case of software used on network servers, this result may fail to come about. The GNU General Public License"\
" permits making a modified version and letting the public access it on a server without ever releasing its source code to the"\
" public.\r\n\r\nThe GNU Affero General Public License is designed specifically to ensure that, in such cases, the modified"\
" source code becomes available to the community. It requires the operator of a network server to provide the source code of"\
" the modified version running there to the users of that server. Therefore, public use of a modified version, on a publicly"\
" accessible server, gives the public access to the source code of the modified version.\r\n\r\nAn older license, called the"\
" Affero General Public License and published by Affero, was designed to accomplish similar goals. This is a different license,"\
" not a version of the Affero GPL, but Affero has released a new version of the Affero GPL which permits relicensing under this"\
body = "The GNU Affero General Public License is a free, copyleft license for software and other kinds of works, specifically designed" \
" to ensure cooperation with the community in the case of network server software.\r\n\r\nThe licenses for most software and" \
" other practical works are designed to take away your freedom to share and change the works. By contrast, our General Public" \
" Licenses are intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free" \
" software for all its users.\r\n\r\nWhen we speak of free software, we are referring to freedom, not price. Our General" \
" Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for" \
" them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces" \
" of it in new free programs, and that you know you can do these things.\r\n\r\nDevelopers that use our General Public Licenses" \
" protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License which gives you" \
" legal permission to copy, distribute and/or modify the software.\r\n\r\nA secondary benefit of defending all users' freedom" \
" is that improvements made in alternate versions of the program, if they receive widespread use, become available for other" \
" developers to incorporate. Many developers of free software are heartened and encouraged by the resulting cooperation." \
" However, in the case of software used on network servers, this result may fail to come about. The GNU General Public License" \
" permits making a modified version and letting the public access it on a server without ever releasing its source code to the" \
" public.\r\n\r\nThe GNU Affero General Public License is designed specifically to ensure that, in such cases, the modified" \
" source code becomes available to the community. It requires the operator of a network server to provide the source code of" \
" the modified version running there to the users of that server. Therefore, public use of a modified version, on a publicly" \
" accessible server, gives the public access to the source code of the modified version.\r\n\r\nAn older license, called the" \
" Affero General Public License and published by Affero, was designed to accomplish similar goals. This is a different license," \
" not a version of the Affero GPL, but Affero has released a new version of the Affero GPL which permits relicensing under this" \
" license."
draft_version = create(:legislation_draft_version, body: body)
quote = "By contrast, our General Public Licenses are intended to guarantee your freedom to share and change all versions of a"\
" program--to make sure it remains free software for all its users.\r\n\r\nWhen we speak of free software, we are referring to"\
" freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of"\
quote = "By contrast, our General Public Licenses are intended to guarantee your freedom to share and change all versions of a" \
" program--to make sure it remains free software for all its users.\r\n\r\nWhen we speak of free software, we are referring to" \
" freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of" \
" free software (and charge for them if you wish)"
annotation = create(
@@ -101,12 +101,12 @@ RSpec.describe Legislation::Annotation, type: :model do
ranges: [{ "start" => "/p[2]", "startOffset" => 127, "end" => "/p[3]", "endOffset" => 223 }]
)
context = "The licenses for most software and other practical works are designed to take away your freedom to share and change the"\
" works. <span class=annotator-hl>By contrast, our General Public Licenses are intended to guarantee your freedom to share"\
" and change all versions of a program--to make sure it remains free software for all its users.\r\n\r\nWhen we speak of"\
" free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have"\
" the freedom to distribute copies of free software (and charge for them if you wish)</span>, that you receive source code"\
" or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know"\
context = "The licenses for most software and other practical works are designed to take away your freedom to share and change the" \
" works. <span class=annotator-hl>By contrast, our General Public Licenses are intended to guarantee your freedom to share" \
" and change all versions of a program--to make sure it remains free software for all its users.\r\n\r\nWhen we speak of" \
" free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have" \
" the freedom to distribute copies of free software (and charge for them if you wish)</span>, that you receive source code" \
" or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know" \
" you can do these things."
expect(annotation.context).to eq(context)

View File

@@ -61,9 +61,9 @@ describe "Account" do
click_button "Update"
notice = "Your account has been updated successfully;"\
" however, we need to verify your new email address."\
" Please check your email and click on the link to"\
notice = "Your account has been updated successfully;" \
" however, we need to verify your new email address." \
" Please check your email and click on the link to" \
" complete the confirmation of your new email address."
expect(page).to have_content notice

View File

@@ -35,7 +35,7 @@ describe "Admin administrators" do
scenario "Delete Administrator" do
visit admin_administrators_path
confirmation = "Are you sure? This action will delete "\
confirmation = "Are you sure? This action will delete " \
"\"#{user_administrator.name}\" and can't be undone."
within "#administrator_#{user_administrator.id}" do

View File

@@ -535,7 +535,7 @@ describe "Admin budget investments", :admin do
click_button "Filter"
expect(page).not_to have_button "Calculate Winner Investments"
expect(page).to have_content 'The budget has to stay on phase "Reviewing voting" '\
expect(page).to have_content 'The budget has to stay on phase "Reviewing voting" ' \
"in order to calculate winners projects"
visit admin_budget_path(budget)
@@ -1720,12 +1720,12 @@ describe "Admin budget investments", :admin do
expect(header).to match(/^attachment/)
expect(header).to match(/filename="budget_investments.csv"/)
csv_contents = "ID,Title,Supports,Administrator,Valuator,Valuation Group,Scope of operation,"\
"Feasibility,Val. Fin.,Selected,Show to valuators,Author username\n"\
"#{first_investment.id},Le Investment,88,Admin,-,Valuator Group,"\
"Budget Heading,Feasible (€99),Yes,Yes,Yes,"\
"#{first_investment.author.username}\n#{second_investment.id},"\
"Alt Investment,66,No admin assigned,Valuator,-,Other Heading,"\
csv_contents = "ID,Title,Supports,Administrator,Valuator,Valuation Group,Scope of operation," \
"Feasibility,Val. Fin.,Selected,Show to valuators,Author username\n" \
"#{first_investment.id},Le Investment,88,Admin,-,Valuator Group," \
"Budget Heading,Feasible (€99),Yes,Yes,Yes," \
"#{first_investment.author.username}\n#{second_investment.id}," \
"Alt Investment,66,No admin assigned,Valuator,-,Other Heading," \
"Unfeasible,No,No,No,#{second_investment.author.username}\n"
expect(page.body).to eq(csv_contents)

View File

@@ -7,8 +7,8 @@ describe "Admin budget phases" do
scenario "Update phase" do
visit edit_admin_budget_budget_phase_path(budget, budget.current_phase)
expect(page).to have_content "These fields are used for information purposes only and do not trigger "\
"an automatic update of the active phase. In order to update it, edit "\
expect(page).to have_content "These fields are used for information purposes only and do not trigger " \
"an automatic update of the active phase. In order to update it, edit " \
"the budget and select the active phase."
expect(page).to have_content "For information purposes only"

View File

@@ -235,8 +235,8 @@ describe "Admin budgets", :admin do
visit admin_budget_path(budget)
expect(page).to have_content "The configuration of these phases is used for information purposes "\
"only. Its function is to define the phases information displayed "\
expect(page).to have_content "The configuration of these phases is used for information purposes " \
"only. Its function is to define the phases information displayed " \
"on the public page of the participatory budget."
expect(page).to have_table "Phases", with_cols: [
[
@@ -357,7 +357,7 @@ describe "Admin budgets", :admin do
scenario "Change voting style uncheck hide money" do
budget_hide_money = create(:budget, :approval, :hide_money)
hide_money_help_text = "If this option is checked, all fields showing the amount of money "\
hide_money_help_text = "If this option is checked, all fields showing the amount of money " \
"will be hidden throughout the process."
visit edit_admin_budget_path(budget_hide_money)
@@ -378,7 +378,7 @@ describe "Admin budgets", :admin do
scenario "Edit knapsack budget do not show hide money info" do
budget = create(:budget, :knapsack)
hide_money_help_text = "If this option is checked, all fields showing the amount of money "\
hide_money_help_text = "If this option is checked, all fields showing the amount of money " \
"will be hidden throughout the process."
visit edit_admin_budget_path(budget)
@@ -394,7 +394,7 @@ describe "Admin budgets", :admin do
scenario "Edit approval budget show hide money info" do
budget = create(:budget, :approval)
hide_money_help_text = "If this option is checked, all fields showing the amount of money "\
hide_money_help_text = "If this option is checked, all fields showing the amount of money " \
"will be hidden throughout the process."
visit edit_admin_budget_path(budget)

View File

@@ -139,7 +139,7 @@ describe "Admin local census records", :admin do
expect(page).to have_content deleted_document_number
confirmation = "Are you sure? This action will delete "\
confirmation = "Are you sure? This action will delete " \
"\"#{local_census_record.title}\" and can't be undone."
accept_confirm(confirmation) { click_on "Delete" }

View File

@@ -40,7 +40,7 @@ describe "Machine learning" do
visit admin_machine_learning_path
expect(page).to have_content "This feature is disabled. To use Machine Learning you can enable it from "\
expect(page).to have_content "This feature is disabled. To use Machine Learning you can enable it from " \
"the settings page"
expect(page).to have_link "settings page", href: admin_settings_path(anchor: "tab-feature-flags")
end
@@ -56,7 +56,7 @@ describe "Machine learning" do
click_button "Execute script"
expect(page).to have_content "The last script has been executed successfully."
expect(page).to have_content "You will receive an email in #{admin.email} when the script "\
expect(page).to have_content "You will receive an email in #{admin.email} when the script " \
"finishes running."
expect(page).to have_field "Select python script to execute"
@@ -71,11 +71,11 @@ describe "Machine learning" do
end
expect(page).to have_content "Related content"
expect(page).to have_content "Adds automatically generated related content to proposals and "\
expect(page).to have_content "Adds automatically generated related content to proposals and " \
"participatory budget projects"
expect(page).to have_content "Comments summary"
expect(page).to have_content "Displays an automatically generated comment summary on all items that "\
expect(page).to have_content "Displays an automatically generated comment summary on all items that " \
"can be commented on."
expect(page).to have_content "Tags"
@@ -94,7 +94,7 @@ describe "Machine learning" do
select "proposals_related_content_and_tags_nmf.py", from: "Select python script to execute"
click_button "Execute script"
expect(page).to have_content "The script is running. The administrator who executed it will receive "\
expect(page).to have_content "The script is running. The administrator who executed it will receive " \
"an email when it is finished."
expect(page).to have_content "Executed by: #{admin.name}"
@@ -139,7 +139,7 @@ describe "Machine learning" do
expect(page).to have_content "Script name: proposals_related_content_and_tags_nmf.py"
expect(page).to have_content "Error: Error description"
expect(page).to have_content "You will receive an email in #{admin.email} when the script "\
expect(page).to have_content "You will receive an email in #{admin.email} when the script " \
"finishes running."
expect(page).to have_field "Select python script to execute"

View File

@@ -267,7 +267,7 @@ describe "System Emails" do
expect(page).to have_content "New evaluation comment for Cleaner city"
expect(page).to have_content "Hi #{admin.name}"
expect(page).to have_content "There is a new evaluation comment from #{comment.user.name} "\
expect(page).to have_content "There is a new evaluation comment from #{comment.user.name} " \
"to the budget investment Cleaner city"
expect(page).to have_content comment.body

View File

@@ -603,7 +603,7 @@ describe "Budget Investments" do
fill_in_new_investment_title with: "Build a skyscraper"
fill_in_ckeditor "Description", with: "I want to live in a high tower over the clouds"
fill_in "Location additional info", with: "City center"
fill_in "If you are proposing in the name of a collective/organization, "\
fill_in "If you are proposing in the name of a collective/organization, " \
"or on behalf of more people, write its name", with: "T.I.A."
fill_in "Tags", with: "Towers"
check "I agree to the Privacy Policy and the Terms and conditions of use"
@@ -668,7 +668,7 @@ describe "Budget Investments" do
fill_in_new_investment_title with: "Build a skyscraper"
fill_in_ckeditor "Description", with: "I want to live in a high tower over the clouds"
fill_in "Location additional info", with: "City center"
fill_in "If you are proposing in the name of a collective/organization, "\
fill_in "If you are proposing in the name of a collective/organization, " \
"or on behalf of more people, write its name", with: "T.I.A."
fill_in "Tags", with: "Towers"
check "I agree to the Privacy Policy and the Terms and conditions of use"
@@ -1000,14 +1000,14 @@ describe "Budget Investments" do
expect(page).not_to have_content("Unfeasibility explanation")
expect(page).not_to have_content("Local government is not competent in this")
expect(page).not_to have_content("This investment project has been marked as not feasible "\
expect(page).not_to have_content("This investment project has been marked as not feasible " \
"and will not go to balloting phase")
visit budget_investment_path(budget, id: investment_2.id)
expect(page).to have_content("Unfeasibility explanation")
expect(page).to have_content("The unfeasible explanation")
expect(page).to have_content("This investment project has been marked as not feasible "\
expect(page).to have_content("This investment project has been marked as not feasible " \
"and will not go to balloting phase")
end
@@ -1472,7 +1472,7 @@ describe "Budget Investments" do
visit budget_ballot_path(budget)
expect(page).to have_content "But you can change your vote at any time "\
expect(page).to have_content "But you can change your vote at any time " \
"until this phase is closed."
within("#budget_group_#{global_group.id}") do

View File

@@ -20,17 +20,17 @@ describe "Votes" do
within("#budget-investments") do
within("#budget_investment_#{investment1.id}_votes") do
expect(page).to have_content "You have already supported this investment project. "\
expect(page).to have_content "You have already supported this investment project. " \
"Share it!"
end
within("#budget_investment_#{investment2.id}_votes") do
expect(page).not_to have_content "You have already supported this investment project. "\
expect(page).not_to have_content "You have already supported this investment project. " \
"Share it!"
end
within("#budget_investment_#{investment3.id}_votes") do
expect(page).not_to have_content "You have already supported this investment project. "\
expect(page).not_to have_content "You have already supported this investment project. " \
"Share it!"
end
end
@@ -45,7 +45,7 @@ describe "Votes" do
click_button "Support"
expect(page).to have_content "1 support"
expect(page).to have_content "You have already supported this investment project. "\
expect(page).to have_content "You have already supported this investment project. " \
"Share it!"
end
end
@@ -77,7 +77,7 @@ describe "Votes" do
click_button "Support"
expect(page).to have_content "1 support"
expect(page).to have_content "You have already supported this investment project. "\
expect(page).to have_content "You have already supported this investment project. " \
"Share it!"
end
end
@@ -123,7 +123,7 @@ describe "Votes" do
accept_confirm { click_button "Support" }
expect(page).to have_content "1 support"
expect(page).to have_content "You have already supported this investment project. "\
expect(page).to have_content "You have already supported this investment project. " \
"Share it!"
end
@@ -135,7 +135,7 @@ describe "Votes" do
click_button "Support"
expect(page).to have_content "1 support"
expect(page).to have_content "You have already supported this investment project. "\
expect(page).to have_content "You have already supported this investment project. " \
"Share it!"
end
@@ -144,7 +144,7 @@ describe "Votes" do
within("#budget_investment_#{third_heading_investment.id}") do
click_button "Support"
expect(page).to have_content "You can only support investment projects in 2 districts. "\
expect(page).to have_content "You can only support investment projects in 2 districts. " \
"You have already supported investments in"
participation = find(".participation-not-allowed")
@@ -154,7 +154,7 @@ describe "Votes" do
expect(headings).to match_array [new_york.name, san_francisco.name]
expect(page).not_to have_content "1 support"
expect(page).not_to have_content "You have already supported this investment project. "\
expect(page).not_to have_content "You have already supported this investment project. " \
"Share it!"
end
end
@@ -178,7 +178,7 @@ describe "Votes" do
click_button "Support"
expect(page).to have_content "You can only support investment projects in 2 districts. "\
expect(page).to have_content "You can only support investment projects in 2 districts. " \
"You have already supported investments in"
participation = find(".participation-not-allowed")
@@ -188,7 +188,7 @@ describe "Votes" do
expect(headings).to match_array [new_york.name, san_francisco.name]
expect(page).not_to have_content "1 support"
expect(page).not_to have_content "You have already supported this investment project. "\
expect(page).not_to have_content "You have already supported this investment project. " \
"Share it!"
end

View File

@@ -130,7 +130,7 @@ describe "Internal valuation comments on Budget::Investments" do
end
scenario "Sanitizes comment body for security" do
comment_with_js = "<script>alert('hola')</script> <a href=\"javascript:alert('sorpresa!')\">"\
comment_with_js = "<script>alert('hola')</script> <a href=\"javascript:alert('sorpresa!')\">" \
"click me<a/> http://www.url.com"
create(:comment, :valuation, author: admin_user, commentable: investment,
body: comment_with_js)

View File

@@ -58,9 +58,9 @@ describe "Proposal's dashboard" do
scenario "Dashboard progress show proposed actions truncated description" do
action = create(:dashboard_action, :proposed_action, :active, description: "One short action")
action_long = create(:dashboard_action, :proposed_action, :active,
description: "This is a really very long description for a proposed "\
"action on progress dashboard section, so this description "\
"should be appear truncated and shows the show description "\
description: "This is a really very long description for a proposed " \
"action on progress dashboard section, so this description " \
"should be appear truncated and shows the show description " \
"link to show the complete description to the users.")
visit progress_proposal_dashboard_path(proposal)
@@ -273,7 +273,7 @@ describe "Proposal's dashboard" do
click_link(feature.title)
click_button "Request"
expect(page).to have_content("The request has been successfully sent. We will contact you "\
expect(page).to have_content("The request has been successfully sent. We will contact you " \
"as soon as possible to inform you about it.")
end
@@ -298,7 +298,7 @@ describe "Proposal's dashboard" do
end
click_button "Request"
expect(page).to have_content("The request has been successfully sent. We will contact you "\
expect(page).to have_content("The request has been successfully sent. We will contact you " \
"as soon as possible to inform you about it.")
end

View File

@@ -17,7 +17,7 @@ describe "Proposal Notifications" do
click_link "Send notification to proposal followers"
fill_in "proposal_notification_title", with: "Thank you for supporting my proposal"
fill_in "proposal_notification_body", with: "Please share it with "\
fill_in "proposal_notification_body", with: "Please share it with " \
"others so we can make it happen!"
click_button "Send notification"
@@ -104,7 +104,7 @@ describe "Proposal Notifications" do
login_as(author)
visit new_proposal_notification_path(proposal_id: proposal.id)
expect(page).to have_content "This notification will be sent to 7 people and it will "\
expect(page).to have_content "This notification will be sent to 7 people and it will " \
"be visible in the proposal's page"
expect(page).to have_link("the proposal's page", href: proposal_path(proposal,
anchor: "comments"))
@@ -120,7 +120,7 @@ describe "Proposal Notifications" do
login_as(author)
visit new_proposal_notification_path(proposal_id: proposal.id)
expect(page).to have_content "This notification will be sent to 7 people and it will "\
expect(page).to have_content "This notification will be sent to 7 people and it will " \
"be visible in the proposal's page"
expect(page).to have_link("the proposal's page", href: proposal_path(proposal,
anchor: "comments"))
@@ -135,7 +135,7 @@ describe "Proposal Notifications" do
login_as(author)
visit new_proposal_notification_path(proposal_id: proposal.id)
expect(page).to have_content "This notification will be sent to 1 people and it will "\
expect(page).to have_content "This notification will be sent to 1 people and it will " \
"be visible in the proposal's page"
expect(page).to have_link("the proposal's page", href: proposal_path(proposal,
anchor: "comments"))
@@ -190,7 +190,7 @@ describe "Proposal Notifications" do
visit new_proposal_notification_path(proposal_id: proposal.id)
fill_in "proposal_notification_title", with: "Thank you for supporting my proposal"
fill_in "proposal_notification_body", with: "Please share it with "\
fill_in "proposal_notification_body", with: "Please share it with " \
"others so we can make it happen!"
click_button "Send notification"
@@ -242,7 +242,7 @@ describe "Proposal Notifications" do
visit new_proposal_notification_path(proposal_id: proposal.id)
fill_in "proposal_notification_title", with: "Thank you for supporting my proposal"
fill_in "proposal_notification_body", with: "Please share it with "\
fill_in "proposal_notification_body", with: "Please share it with " \
"others so we can make it happen!"
click_button "Send notification"
@@ -292,7 +292,7 @@ describe "Proposal Notifications" do
visit new_proposal_notification_path(proposal_id: proposal.id)
fill_in "proposal_notification_title", with: "Thank you for supporting my proposal"
fill_in "proposal_notification_body", with: "Please share it with "\
fill_in "proposal_notification_body", with: "Please share it with " \
"others so we can make it happen!"
click_button "Send notification"

View File

@@ -89,7 +89,7 @@ describe "Local Targets" do
sdg_local_target = create(:sdg_local_target, code: "1.1.1")
visit sdg_management_local_targets_path
confirmation = "Are you sure? This action will delete "\
confirmation = "Are you sure? This action will delete " \
"\"#{sdg_local_target.title}\" and can't be undone."
accept_confirm(confirmation) { click_button "Delete" }

View File

@@ -611,7 +611,7 @@ describe "Users" do
fill_in "Email", with: "manuela@consul.dev"
click_button "Send instructions"
expect(page).to have_content "If your email address is in our database, in a few minutes "\
expect(page).to have_content "If your email address is in our database, in a few minutes " \
"you will receive a link to use to reset your password."
action_mailer = ActionMailer::Base.deliveries.last.body.to_s
@@ -633,7 +633,7 @@ describe "Users" do
fill_in "Email", with: "fake@mail.dev"
click_button "Send instructions"
expect(page).to have_content "If your email address is in our database, in a few minutes "\
expect(page).to have_content "If your email address is in our database, in a few minutes " \
"you will receive a link to use to reset your password."
end
@@ -648,7 +648,7 @@ describe "Users" do
fill_in "Email", with: "manuela@consul.dev"
click_button "Re-send instructions"
expect(page).to have_content "If your email address exists in our database, in a few minutes you will "\
expect(page).to have_content "If your email address exists in our database, in a few minutes you will " \
"receive an email with instructions on how to confirm your email address."
expect(ActionMailer::Base.deliveries.count).to eq(1)
expect(ActionMailer::Base.deliveries.first.to).to eq(["manuela@consul.dev"])
@@ -664,7 +664,7 @@ describe "Users" do
fill_in "Email", with: "fake@mail.dev"
click_button "Re-send instructions"
expect(page).to have_content "If your email address exists in our database, in a few minutes you will "\
expect(page).to have_content "If your email address exists in our database, in a few minutes you will " \
"receive an email with instructions on how to confirm your email address."
expect(ActionMailer::Base.deliveries.count).to eq(0)
end
@@ -680,7 +680,7 @@ describe "Users" do
fill_in "user_email", with: "manuela@consul.dev"
click_button "Re-send instructions"
expect(page).to have_content "If your email address exists in our database, in a few minutes you will "\
expect(page).to have_content "If your email address exists in our database, in a few minutes you will " \
"receive an email with instructions on how to confirm your email address."
expect(ActionMailer::Base.deliveries.count).to eq(1)
expect(ActionMailer::Base.deliveries.first.to).to eq(["manuela@consul.dev"])

View File

@@ -10,7 +10,7 @@ describe "Verify Letter" do
click_link "Send me a letter with the code"
expect(page).to have_content "Thank you for requesting your maximum security code (only required for the final votes). In a few days"\
expect(page).to have_content "Thank you for requesting your maximum security code (only required for the final votes). In a few days" \
" we will send it to the address featuring in the data we have on file."
user.reload

View File

@@ -87,7 +87,7 @@ describe "Level three verification" do
click_link "Send me a letter with the code"
expect(page).to have_content "Thank you for requesting your maximum security code (only required for the final votes)."\
expect(page).to have_content "Thank you for requesting your maximum security code (only required for the final votes)." \
" In a few days we will send it to the address featuring in the data we have on file."
end
end