Skip to content

Shared specs for every role are expensive #3013

@deivid-rodriguez

Description

@deivid-rodriguez

This is a Discussion Trigger

🎩 Description

Right now we have a lot of shared specs for the admin backend that test full scenarios for every admin role. This is expensive since we are talking about full suites with different scenarios that get run twice. However, there's normally no "role specific code" anywhere in our controllers, forms, views or commands, so in most situations either both roles fail or both pass. The only role specific code is usually inside cancancan ability files, which we normally backup with unit tests.

I haven't tried to grab numbers, but I think it'd be a matter of removing all of these files and see how much we save:

$ fd "(process|assembly)_admin_manages"
decidim-accountability/spec/system/process_admin_manages_accountability_spec.rb
decidim-assemblies/spec/system/admin/assembly_admin_manages_assemblies_spec.rb
decidim-assemblies/spec/system/admin/assembly_admin_manages_assembly_admins_spec.rb
decidim-assemblies/spec/system/admin/assembly_admin_manages_assembly_attachment_collections_spec.rb
decidim-assemblies/spec/system/admin/assembly_admin_manages_assembly_attachments_spec.rb
decidim-assemblies/spec/system/admin/assembly_admin_manages_assembly_categories_spec.rb
decidim-assemblies/spec/system/admin/assembly_admin_manages_assembly_component_permissions_spec.rb
decidim-assemblies/spec/system/admin/assembly_admin_manages_assembly_components_spec.rb
decidim-assemblies/spec/system/admin/assembly_admin_manages_assembly_moderations_spec.rb
decidim-budgets/spec/system/process_admin_manages_project_attachments_spec.rb
decidim-budgets/spec/system/process_admin_manages_projects_spec.rb
decidim-comments/spec/system/process_admin_manages_comments_spec.rb
decidim-debates/spec/system/process_admin_manages_debates_spec.rb
decidim-meetings/spec/system/process_admin_manages_meetings_attachments_spec.rb
decidim-meetings/spec/system/process_admin_manages_meetings_spec.rb
decidim-participatory_processes/spec/system/admin/participatory_process_admin_manages_participatory_process_admins_spec.rb
decidim-participatory_processes/spec/system/admin/participatory_process_admin_manages_participatory_process_attachments_spec.rb
decidim-participatory_processes/spec/system/admin/participatory_process_admin_manages_participatory_process_categories_spec.rb
decidim-participatory_processes/spec/system/admin/participatory_process_admin_manages_participatory_process_component_permissions_spec.rb
decidim-participatory_processes/spec/system/admin/participatory_process_admin_manages_participatory_process_components_spec.rb
decidim-participatory_processes/spec/system/admin/participatory_process_admin_manages_participatory_process_steps_spec.rb
decidim-participatory_processes/spec/system/admin/participatory_process_admin_manages_participatory_processes_spec.rb
decidim-proposals/spec/system/process_admin_manages_proposals_spec.rb
decidim-surveys/spec/system/process_admin_manages_surveys_spec.rb

Thoughts?

📋 Additional Data

None.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions