Skip to content

Commit

Permalink
Support Tailwind CSS in core dummy app
Browse files Browse the repository at this point in the history
This allows running the core dummy app with the Tailwind required for
setting sails towards the new frontend.
  • Loading branch information
mamhoff committed Jun 20, 2024
1 parent 97f9f69 commit e1b1a48
Show file tree
Hide file tree
Showing 4 changed files with 72 additions and 6 deletions.
10 changes: 10 additions & 0 deletions admin/lib/solidus_admin/testing_support/admin_assets.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# frozen_string_literal: true

RSpec.configure do |config|
config.when_first_matching_example_defined(solidus_admin: true) do
config.before(:suite) do
system('bin/rails solidus_admin:tailwindcss:build') or abort 'Failed to build Tailwind CSS'
Rails.application.precompiled_assets
end
end
end

Check warning on line 10 in admin/lib/solidus_admin/testing_support/admin_assets.rb

View check run for this annotation

Codecov / codecov/patch

admin/lib/solidus_admin/testing_support/admin_assets.rb#L3-L10

Added lines #L3 - L10 were not covered by tests
60 changes: 60 additions & 0 deletions admin/lib/solidus_admin/testing_support/dummy_app/rake_tasks.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
# frozen_string_literal: true

namespace :solidus_admin do
namespace :tailwindcss do
desc "Build Tailwind CSS"
task build: :dummy_environment do
require "solidus_admin"
require "tailwindcss/commands"

Check warning on line 8 in admin/lib/solidus_admin/testing_support/dummy_app/rake_tasks.rb

View check run for this annotation

Codecov / codecov/patch

admin/lib/solidus_admin/testing_support/dummy_app/rake_tasks.rb#L3-L8

Added lines #L3 - L8 were not covered by tests

config_file = <<~JS
const adminRoot = "#{SolidusAdmin::Engine.root}"
const solidusAdmin = require(`${adminRoot}/config/tailwind.config.js`)

Check warning on line 12 in admin/lib/solidus_admin/testing_support/dummy_app/rake_tasks.rb

View check run for this annotation

Codecov / codecov/patch

admin/lib/solidus_admin/testing_support/dummy_app/rake_tasks.rb#L10-L12

Added lines #L10 - L12 were not covered by tests
module.exports = {
// Read how to use TailwindCSS presets: https://tailwindcss.com/docs/presets.
presets: [solidusAdmin],

Check warning on line 16 in admin/lib/solidus_admin/testing_support/dummy_app/rake_tasks.rb

View check run for this annotation

Codecov / codecov/patch

admin/lib/solidus_admin/testing_support/dummy_app/rake_tasks.rb#L14-L16

Added lines #L14 - L16 were not covered by tests
content: [
// Include paths coming from SolidusAdmin.
...solidusAdmin.content,

Check warning on line 20 in admin/lib/solidus_admin/testing_support/dummy_app/rake_tasks.rb

View check run for this annotation

Codecov / codecov/patch

admin/lib/solidus_admin/testing_support/dummy_app/rake_tasks.rb#L18-L20

Added lines #L18 - L20 were not covered by tests
// Include paths to your own components.
`${__dirname}/../../../../app/components/admin/**/*`,
`${__dirname}/../../../../lib/components/admin/**/*`,
],
}
JS
FileUtils.mkdir_p(DummyApp::Application.root.join("config"))
File.write(DummyApp::Application.root.join("config/tailwind.config.js"), config_file)
FileUtils.mkdir_p(DummyApp::Application.root.join("app/assets/stylesheets/solidus_admin"))
FileUtils.cp(
SolidusAdmin::Engine.root.join("app/assets/stylesheets/solidus_admin/application.tailwind.css"),
DummyApp::Application.root.join("app/assets/stylesheets/solidus_admin/application.tailwind.css")
)

Check warning on line 34 in admin/lib/solidus_admin/testing_support/dummy_app/rake_tasks.rb

View check run for this annotation

Codecov / codecov/patch

admin/lib/solidus_admin/testing_support/dummy_app/rake_tasks.rb#L22-L34

Added lines #L22 - L34 were not covered by tests

tailwindcss = Tailwindcss::Commands.executable

Check warning on line 36 in admin/lib/solidus_admin/testing_support/dummy_app/rake_tasks.rb

View check run for this annotation

Codecov / codecov/patch

admin/lib/solidus_admin/testing_support/dummy_app/rake_tasks.rb#L36

Added line #L36 was not covered by tests

tailwindcss_command = [
tailwindcss,
"--config", DummyApp::Application.root.join("config/tailwind.config.js"),
"--input", DummyApp::Application.root.join("app/assets/stylesheets/solidus_admin/application.tailwind.css"),
"--output", DummyApp::Application.root.join("assets/builds/solidus_admin/tailwind.css")
]

Check warning on line 43 in admin/lib/solidus_admin/testing_support/dummy_app/rake_tasks.rb

View check run for this annotation

Codecov / codecov/patch

admin/lib/solidus_admin/testing_support/dummy_app/rake_tasks.rb#L38-L43

Added lines #L38 - L43 were not covered by tests

sh tailwindcss_command.shelljoin
end
end
end

Check warning on line 48 in admin/lib/solidus_admin/testing_support/dummy_app/rake_tasks.rb

View check run for this annotation

Codecov / codecov/patch

admin/lib/solidus_admin/testing_support/dummy_app/rake_tasks.rb#L45-L48

Added lines #L45 - L48 were not covered by tests

# Attach Tailwind CSS build to other tasks.
%w[
assets:precompile
test:prepare
spec:prepare
db:test:prepare
].each do |task_name|
next unless Rake::Task.task_defined?(task_name)

Check warning on line 57 in admin/lib/solidus_admin/testing_support/dummy_app/rake_tasks.rb

View check run for this annotation

Codecov / codecov/patch

admin/lib/solidus_admin/testing_support/dummy_app/rake_tasks.rb#L51-L57

Added lines #L51 - L57 were not covered by tests

Rake::Task[task_name].enhance(["solidus_admin:tailwindcss:build"])
end

Check warning on line 60 in admin/lib/solidus_admin/testing_support/dummy_app/rake_tasks.rb

View check run for this annotation

Codecov / codecov/patch

admin/lib/solidus_admin/testing_support/dummy_app/rake_tasks.rb#L59-L60

Added lines #L59 - L60 were not covered by tests
1 change: 1 addition & 0 deletions legacy_promotions/Rakefile
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ require 'rake'
require 'rake/testtask'
require 'rspec/core/rake_task'
require 'spree/testing_support/dummy_app/rake_tasks'
require 'solidus_admin/testing_support/dummy_app/rake_tasks'
require 'bundler/gem_tasks'

RSpec::Core::RakeTask.new
Expand Down
7 changes: 1 addition & 6 deletions legacy_promotions/spec/rails_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,7 @@
}
mount Spree::Core::Engine, at: "/"
end

unless SolidusAdmin::Engine.root.join('app/assets/builds/solidus_admin/tailwind.css').exist?
Dir.chdir(SolidusAdmin::Engine.root) do
system 'bundle exec rake tailwindcss:build' or abort 'Failed to build Tailwind CSS'
end
end
require "solidus_admin/testing_support/admin_assets"

require 'rails-controller-testing'
require 'rspec/rails'
Expand Down

0 comments on commit e1b1a48

Please sign in to comment.