Sha256: 489c302cd6b28c43a34036403e79b9706ccee0d6972b8d8212eedbf01b20bed3

Contents?: true

Size: 1.42 KB

Versions: 4

Compression:

Stored size: 1.42 KB

Contents

const webpack = require("webpack")
const MemoryFS = require("memory-fs")
const thenify = require("thenify")
const path = require("path")

const createTrackLoader = () => {
  const filesTracked = {}
  return [
    filesTracked,
    (source) => {
      filesTracked[source.resource] = true
      return source
    }
  ]
}

const pathToNodeModules = path.resolve("node_modules")
const pathToNodeModulesIncluded = path.resolve("node_modules/included")
const pathToAppJavascript = path.resolve("app/javascript")

const createInMemoryFs = () => {
  const fs = new MemoryFS()

  fs.mkdirpSync(pathToNodeModules)
  fs.mkdirpSync(pathToNodeModulesIncluded)
  fs.mkdirpSync(pathToAppJavascript)

  return fs
}

const createTestCompiler = (config, fs = createInMemoryFs()) => {
  Object.values(config.entry).forEach((file) => {
    fs.writeFileSync(file, "console.log(1);")
  })

  const compiler = webpack(config)
  compiler.run = thenify(compiler.run)
  compiler.inputFileSystem = fs
  compiler.outputFileSystem = fs
  return compiler
}

const chdirTestApp = () => {
  try {
    return process.chdir("spec/shakapacker/test_app")
  } catch (e) {
    return null
  }
}

const chdirCwd = () => process.chdir(process.cwd())

const resetEnv = () => {
  process.env = {}
}

module.exports = {
  chdirTestApp,
  chdirCwd,
  resetEnv,
  createTrackLoader,
  pathToNodeModules,
  pathToNodeModulesIncluded,
  pathToAppJavascript,
  createInMemoryFs,
  createTestCompiler
}

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
shakapacker-8.2.0 test/helpers.js
shakapacker-8.1.0 test/helpers.js
shakapacker-8.0.2 test/helpers.js
shakapacker-8.0.1 test/helpers.js