feat: add tests

This commit is contained in:
Noah Klayman
2019-12-17 16:58:59 -08:00
parent b00b828368
commit 07cc93218d
7 changed files with 9937 additions and 150 deletions

1
.gitignore vendored
View File

@@ -1 +1,2 @@
node_modules
__tests__/temp_projects

13
__tests__/build.spec.js Normal file
View File

@@ -0,0 +1,13 @@
jest.setTimeout(240000)
const create = require('./createProject.helper')
describe('tauri:build', () => {
it('Should build a tauri app', async () => {
const project = await create('build')
await project.run('vue-cli-service tauri:build')
// Web code is built
expect(project.has('dist_tauri/bundled/index.html')).toBe(true)
// Tauri app is built
expect(project.has('src-tauri/target/release/app')).toBe(true)
})
})

View File

@@ -0,0 +1,15 @@
const create = require('@vue/cli-test-utils/createTestProject')
const { defaultPreset } = require('@vue/cli/lib/options')
const path = require('path')
module.exports = projectName => {
const preset = { ...defaultPreset }
preset.plugins['vue-cli-plugin-tauri'] = {}
delete preset.plugins['@vue/cli-plugin-eslint']
return create(
projectName,
preset,
path.join(process.cwd(), '/__tests__/temp_projects')
)
}

View File

@@ -0,0 +1,18 @@
const lnk = require('lnk')
const fs = require('fs')
// Prevent full and unnecessary project creation
process.env.VUE_CLI_TEST = true
// Link ./ to node_modules/vcp-tauri so that require.resolve(vcp-tauri) returns ./
if (!fs.existsSync('./node_modules/vue-cli-plugin-tauri')) {
try {
lnk.sync(['./'], './node_modules/vue-cli-plugin-tauri')
} catch (err) {
if (err.code !== 'EEXIST') console.error(err)
}
}
try {
fs.mkdirSync('./__tests__/temp_projects')
} catch (err) {
if (err.code !== 'EEXIST') console.error(err)
}

9
jest.config.js Normal file
View File

@@ -0,0 +1,9 @@
module.exports = {
testEnvironment: 'node',
setupFiles: ['<rootDir>/__tests__/testSetup.helper.js'],
testPathIgnorePatterns: [
'/node_modules/',
'/__tests__/temp_projects/',
'.*.helper.js'
]
}

View File

@@ -6,10 +6,24 @@
"author": "Noah Klayman <noahklayman@gmail.com>",
"license": "MIT",
"private": false,
"scripts": {
"test": "jest",
"pretest": "rimraf __tests__/temp_projects/*"
},
"dependencies": {
"@tauri-apps/tauri-webpack": "^0.1.4",
"@vue/cli-shared-utils": "^4.1.1",
"execa": "^3.4.0",
"tauri": "^0.2.0"
},
"devDependencies": {
"@vue/cli": "^4.1.1",
"@vue/cli-plugin-babel": "^4.1.1",
"@vue/cli-service": "^4.1.1",
"@vue/cli-test-utils": "^4.1.1",
"jest": "^24.9.0",
"lnk": "^1.1.0",
"rimraf": "^3.0.0",
"vue": "^2.6.11"
}
}

10017
yarn.lock

File diff suppressed because it is too large Load Diff