Skip to content

Commit

Permalink
Merge pull request #155 from nebulab/waiting-for-dev/generator_test_d…
Browse files Browse the repository at this point in the history
…ependency

Remove dependency to test generators
  • Loading branch information
kennyadsl authored Apr 30, 2021
2 parents 74eefb1 + a282ffb commit 1995e58
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 22 deletions.
1 change: 0 additions & 1 deletion solidus_starter_frontend.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@ Gem::Specification.new do |spec|
spec.require_paths = ["lib"]

spec.add_dependency 'canonical-rails', '~> 0.2.0'
spec.add_dependency 'generator_spec', '~> 0.9.4'
spec.add_dependency 'solidus_api', ['>= 2.0', '< 4']
spec.add_dependency 'solidus_core', ['>= 2.0.0', '< 4']
spec.add_dependency 'solidus_support', '~> 0.5'
Expand Down
40 changes: 19 additions & 21 deletions spec/generators/solidus/views/override_generator_spec.rb
Original file line number Diff line number Diff line change
@@ -1,50 +1,48 @@
# frozen_string_literal: true

require 'spec_helper'
require 'generator_spec'
require 'generators/solidus_starter_frontend/views/override_generator'

RSpec.describe SolidusStarterFrontend::Views::OverrideGenerator, type: :generator do
destination Rails.root.join('app', 'views', 'spree')
RSpec.describe SolidusStarterFrontend::Views::OverrideGenerator do
include SolidusStarterFrontend::TestingSupport::Generators

before(:all) do
prepare_destination
def src
SolidusStarterFrontend::Engine.root.join('app', 'views', 'spree')
end

subject! do
run_generator arguments
def dest
root.join('app', 'views', 'spree')
end

let(:src) do
::SolidusStarterFrontend::Engine.root.join('app', 'views', 'spree')
def ensure_clean_state
FileUtils.rm_rf dest if File.exist?(dest)
end

let(:dest) do
Rails.root.join('app', 'views', 'spree')
around(:each) do |example|
ensure_clean_state
example.run
ensure_clean_state
end

context 'without any arguments' do
let(:arguments) { %w() }

it 'copies all views into the host app' do
run 'solidus_starter_frontend:views:override'

expect(src.entries).to match_array(dest.entries)
end
end

context 'when "products" is passed as --only argument' do
let(:arguments) { %w(--only products) }

context 'as folder' do
it 'exclusively copies views whose name contains "products"' do
Dir.glob(dest.join("**", "*")).each do |file|
run 'solidus_starter_frontend:views:override --only products'

Dir.glob(dest.join('**', '*')).each do |file|
next if File.directory?(file)
expect(file.to_s).to match("products")

expect(file.to_s).to match('products')
end
end
end
end

after do
FileUtils.rm_rf destination_root
end
end
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# frozen_string_literal: true

module SolidusStarterFrontend
module TestingSupport
# Helper methods to test generators
module Generators
# Run given generator in the dummy application
#
# @param generator [String] Generator to execute as it would be given in
# the command line, including possible options
def run(generator)
`cd #{root} && bin/rails generate #{generator}`
end

private

def root
Rails.root
end
end
end
end

0 comments on commit 1995e58

Please sign in to comment.