Eu gostaria de definir vários tipos de especificações para metadados, mas atualmente não é possível.
Eu gostaria de definir coisas como:
config.when_first_matching_example_defined(types: %i(feature request)) do
# enable db support only for feature or request specs
require 'support/db'
end
# include these Helpers only into feature or request specs
config.include(Helpers, types: %i(feature request))
Atualmente eu tenho que duplicar as definições.
config.when_first_matching_example_defined(types: :feature) do
require 'support/db'
end
config.when_first_matching_example_defined(types: :request) do
require 'support/db'
end
config.include(Helpers, type: :feature)
config.include(Helpers, type: :request)
Você consegue fazer isso:
%i(feature request).each do |type|
config.when_first_matching_example_defined(type: type) do
# enable db support only for feature or request specs
require 'support/db'
end
# include these Helpers only into feature or request specs
config.include(Helpers, type: type)
end
Dado o quão fácil é fazer com um loop simples, não vejo uma razão para adicionarmos suporte para o que você está pedindo - principalmente porque seria uma maneira muito implícita e confusa para os metadados corresponderem, IMO .
Eu não acho que a solução acima melhora a legibilidade e em spec/rails_helper
. Alguma solução de uma linha seria ótima para esses casos. Acho que não, sou o único que apreciaria algo que propus.
Dado que atualmente tratamos os valores de metadados como valores simples, seria realmente confuso começar a dar-lhes um significado especial, para não dizer ambíguo!
Comentários muito úteis
Eu não acho que a solução acima melhora a legibilidade e em
spec/rails_helper
. Alguma solução de uma linha seria ótima para esses casos. Acho que não, sou o único que apreciaria algo que propus.