spec/features/front_end_spec.rb in potassium-6.5.0 vs spec/features/front_end_spec.rb in potassium-6.6.0
- old
+ new
@@ -7,99 +7,65 @@
end
let(:application_css_path) { "#{project_path}/app/javascript/css/application.css" }
let(:gemfile) { IO.read("#{project_path}/Gemfile") }
let(:node_modules_file) { IO.read("#{project_path}/package.json") }
- let(:application_js_file) { IO.read("#{project_path}/app/javascript/packs/application.js") }
+ let(:application_js_file) { IO.read("#{project_path}/app/javascript/application.js") }
let(:layout_file) { IO.read("#{project_path}/app/views/layouts/application.html.erb") }
let(:application_css_file) { IO.read(application_css_path) }
let(:tailwind_config_file) { IO.read("#{project_path}/tailwind.config.js") }
let(:rails_css_file) { IO.read("#{project_path}/app/assets/stylesheets/application.css") }
it "creates a project without a front end framework" do
remove_project_directory
create_dummy_project("front_end" => "None")
- expect(gemfile).to include('webpacker')
+ expect(gemfile).to include('shakapacker')
end
- def expect_to_have_tailwind_compatibility_build
- expect(node_modules_file).to include("\"tailwindcss\": \"npm:@tailwindcss/postcss7-compat\"")
- expect(node_modules_file).to include("\"autoprefixer\": \"^9\"")
- expect(node_modules_file).to include("\"postcss\": \"^7\"")
+ def expect_to_have_tailwind_package_versions
+ expect(node_modules_file).to include("\"tailwindcss\": \"^3\"")
+ expect(node_modules_file).to include("\"autoprefixer\": \"^10\"")
+ expect(node_modules_file).to include("\"postcss\": \"^8\"")
end
context "with vue" do
before(:all) do
remove_project_directory
create_dummy_project("front_end" => "vue")
end
- it "creates a project with vue in compiler mode as frontend framework" do
- expect(gemfile).to include('webpacker')
+ it "creates a project with vue as frontend framework" do
+ expect(gemfile).to include('shakapacker')
expect(node_modules_file).to include("\"vue\"")
- expect(application_js_file).to include('vue/dist/vue.esm')
- expect(application_js_file).to include("el: '#vue-app'")
+ expect(application_js_file).to include('vue')
+ expect(application_js_file).to include("app.mount('#vue-app')")
expect(layout_file).to include('id="vue-app"')
end
it "creates a project with only one js pack tag" do
expect(layout_file.scan("javascript_pack_tag").length).to eq(1)
end
it "creates a vue project with client css" do
- expect(application_js_file).to include("import '../css/application.css';")
+ expect(application_js_file).to include("import './css/application.css';")
expect(layout_file).to include("<%= stylesheet_pack_tag 'application' %>")
expect(rails_css_file).not_to include('*= require_tree', '*= require_self')
end
it "creates a vue project with tailwindcss" do
expect(node_modules_file).to include("\"tailwindcss\"")
expect(application_css_file).to include(
- "@import 'tailwindcss/base';",
- "@import 'tailwindcss/components';"
+ "@tailwind base;",
+ "@tailwind components;"
)
expect(tailwind_config_file).to include('module.exports')
end
it 'includes correct packages for tailwind, postcss and autoprefixer compatibility build' do
- expect_to_have_tailwind_compatibility_build
+ expect_to_have_tailwind_package_versions
end
it 'includes correct version of vue-loader in package' do
expect(node_modules_file).to include("\"vue-loader\": \"#{Potassium::VUE_LOADER_VERSION}\"")
- end
-
- context "with graphql" do
- before(:all) do
- remove_project_directory
- create_dummy_project("front_end" => "vue", "api" => "graphql")
- end
-
- it "creates a vue project with apollo" do
- expect(node_modules_file).to include("\"vue-apollo\"")
- expect(application_js_file).to include("import { ApolloClient } from 'apollo-client';")
- expect(application_js_file).to include("Vue.use(VueApollo)")
- expect(application_js_file).to include("apolloProvider,")
- end
- end
- end
-
- context "with angular" do
- before(:all) do
- remove_project_directory
- create_dummy_project("front_end" => "angular")
- end
-
- it "creates a project without vue as front end framework" do
- expect(gemfile).to include('webpacker')
- expect(node_modules_file).to include("\"@angular/core\"")
- end
-
- it "creates application_js_file for tailwind without vue" do
- expect(application_js_file).to include("import '../css/application.css';")
- end
-
- it 'includes correct packages for tailwind, postcss and autoprefixer compatibility build' do
- expect_to_have_tailwind_compatibility_build
end
end
end