scripts = <<-eos "scripts": { "test": "jest", "assets:precompile": "yarn install; rails assets:precompile", "webpack-dev-server": "./bin/webpack-dev-server", "rails server": "rails server", "yarn install": "yarn install" }, "jest": { "moduleFileExtensions": [ "js", "vue" ], "moduleNameMapper": { "^@/(.*)$": "/app/javascript/parts/$1" }, "transform": { "^.+\\\\\\.js$": "/node_modules/babel-jest", ".*\\\\\\.(vue)$": "/node_modules/vue-jest" }, "snapshotSerializers": [ "/node_modules/jest-serializer-vue" ] }, eos say "Adding scripts and jest configuration to package.json" insert_into_file Rails.root.join("package.json").to_s, "#{scripts}", after: "\"private\": true,\n" say "Adding test presets to .babelrc" babelrc = <<-eos "test": { "presets": [ ["env", { "targets": { "node": "current" }}] ] }, eos insert_into_file Rails.root.join(".babelrc").to_s, "#{babelrc}", before: " \"presets\": [" say "Adding @vue/test-util and other Jest dependencies" run "yarn add jest-serializer-vue vue-jest babel-jest"