Skip to content
This repository was archived by the owner on Nov 9, 2023. It is now read-only.

Commit 07cc932

Browse files
committed
feat: add tests
1 parent b00b828 commit 07cc932

File tree

7 files changed

+10008
-221
lines changed

7 files changed

+10008
-221
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
node_modules
2+
__tests__/temp_projects

__tests__/build.spec.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
jest.setTimeout(240000)
2+
const create = require('./createProject.helper')
3+
4+
describe('tauri:build', () => {
5+
it('Should build a tauri app', async () => {
6+
const project = await create('build')
7+
await project.run('vue-cli-service tauri:build')
8+
// Web code is built
9+
expect(project.has('dist_tauri/bundled/index.html')).toBe(true)
10+
// Tauri app is built
11+
expect(project.has('src-tauri/target/release/app')).toBe(true)
12+
})
13+
})

__tests__/createProject.helper.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
const create = require('@vue/cli-test-utils/createTestProject')
2+
const { defaultPreset } = require('@vue/cli/lib/options')
3+
const path = require('path')
4+
5+
module.exports = projectName => {
6+
const preset = { ...defaultPreset }
7+
preset.plugins['vue-cli-plugin-tauri'] = {}
8+
delete preset.plugins['@vue/cli-plugin-eslint']
9+
10+
return create(
11+
projectName,
12+
preset,
13+
path.join(process.cwd(), '/__tests__/temp_projects')
14+
)
15+
}

__tests__/testSetup.helper.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
const lnk = require('lnk')
2+
const fs = require('fs')
3+
// Prevent full and unnecessary project creation
4+
process.env.VUE_CLI_TEST = true
5+
// Link ./ to node_modules/vcp-tauri so that require.resolve(vcp-tauri) returns ./
6+
if (!fs.existsSync('./node_modules/vue-cli-plugin-tauri')) {
7+
try {
8+
lnk.sync(['./'], './node_modules/vue-cli-plugin-tauri')
9+
} catch (err) {
10+
if (err.code !== 'EEXIST') console.error(err)
11+
}
12+
}
13+
14+
try {
15+
fs.mkdirSync('./__tests__/temp_projects')
16+
} catch (err) {
17+
if (err.code !== 'EEXIST') console.error(err)
18+
}

jest.config.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
module.exports = {
2+
testEnvironment: 'node',
3+
setupFiles: ['<rootDir>/__tests__/testSetup.helper.js'],
4+
testPathIgnorePatterns: [
5+
'/node_modules/',
6+
'/__tests__/temp_projects/',
7+
'.*.helper.js'
8+
]
9+
}

package.json

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,24 @@
66
"author": "Noah Klayman <noahklayman@gmail.com>",
77
"license": "MIT",
88
"private": false,
9+
"scripts": {
10+
"test": "jest",
11+
"pretest": "rimraf __tests__/temp_projects/*"
12+
},
913
"dependencies": {
1014
"@tauri-apps/tauri-webpack": "^0.1.4",
1115
"@vue/cli-shared-utils": "^4.1.1",
1216
"execa": "^3.4.0",
1317
"tauri": "^0.2.0"
18+
},
19+
"devDependencies": {
20+
"@vue/cli": "^4.1.1",
21+
"@vue/cli-plugin-babel": "^4.1.1",
22+
"@vue/cli-service": "^4.1.1",
23+
"@vue/cli-test-utils": "^4.1.1",
24+
"jest": "^24.9.0",
25+
"lnk": "^1.1.0",
26+
"rimraf": "^3.0.0",
27+
"vue": "^2.6.11"
1428
}
1529
}

0 commit comments

Comments
 (0)