Skip to content

Commit

Permalink
fix(linting): enable eslint and fix linting errors
Browse files Browse the repository at this point in the history
  • Loading branch information
nklayman committed May 30, 2020
1 parent 261b78e commit 096d3b1
Show file tree
Hide file tree
Showing 15 changed files with 649 additions and 467 deletions.
4 changes: 4 additions & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
module.exports = {
extends: 'standard',
ignorePatterns: [
'__tests__/projects/*',
'generator/templates/base/src/background.js'
],
env: {
jest: true
}
Expand Down
132 changes: 65 additions & 67 deletions __tests__/build.helper.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,81 +5,79 @@ const portfinder = require('portfinder')
const checkLogs = require('./checkLogs.helper.js')

portfinder.basePort = 9515
const runTests = useTS =>
new Promise(async resolve => {
const { project, projectName } = await create('build', useTS)
const runTests = async useTS => {
const { project, projectName } = await create('build', useTS)

const isWin = process.platform === 'win32'
const projectPath = p =>
path.join(process.cwd(), '__tests__/projects/' + projectName, p)
const isWin = process.platform === 'win32'
const projectPath = p =>
path.join(process.cwd(), '__tests__/projects/' + projectName, p)

await project.run('vue-cli-service electron:build --x64 --dir')
// Ensure /dist is not modified
expect(project.has('dist')).toBe(false)
// Ensure build successfully outputted files
expect(project.has('dist_electron/bundled/index.html')).toBe(true)
expect(project.has('dist_electron/bundled/favicon.ico')).toBe(true)
expect(project.has('dist_electron/bundled/js')).toBe(true)
expect(project.has('dist_electron/bundled/css')).toBe(true)
expect(project.has('dist_electron/bundled/background.js')).toBe(true)
if (isWin) {
expect(project.has(`dist_electron/win-unpacked/${projectName}.exe`)).toBe(
true
)
} else {
expect(project.has(`dist_electron/linux-unpacked/${projectName}`)).toBe(
true
)
}
// Ensure that setup files were not created
expect(project.has(`dist_electron/${projectName} Setup 0.1.0.exe`)).toBe(
false
await project.run('vue-cli-service electron:build --x64 --dir')
// Ensure /dist is not modified
expect(project.has('dist')).toBe(false)
// Ensure build successfully outputted files
expect(project.has('dist_electron/bundled/index.html')).toBe(true)
expect(project.has('dist_electron/bundled/favicon.ico')).toBe(true)
expect(project.has('dist_electron/bundled/js')).toBe(true)
expect(project.has('dist_electron/bundled/css')).toBe(true)
expect(project.has('dist_electron/bundled/background.js')).toBe(true)
if (isWin) {
expect(project.has(`dist_electron/win-unpacked/${projectName}.exe`)).toBe(
true
)
expect(
project.has(`dist_electron/${projectName}-0.1.0-x86_64.AppImage`)
).toBe(false)
expect(project.has(`dist_electron/${projectName}_0.1.0_amd64`)).toBe(false)
// Launch app with spectron
const app = new Application({
path: `./__tests__/projects/${projectName}/dist_electron/${
} else {
expect(project.has(`dist_electron/linux-unpacked/${projectName}`)).toBe(
true
)
}
// Ensure that setup files were not created
expect(project.has(`dist_electron/${projectName} Setup 0.1.0.exe`)).toBe(
false
)
expect(
project.has(`dist_electron/${projectName}-0.1.0-x86_64.AppImage`)
).toBe(false)
expect(project.has(`dist_electron/${projectName}_0.1.0_amd64`)).toBe(false)
// Launch app with spectron
const app = new Application({
path: `./__tests__/projects/${projectName}/dist_electron/${
isWin ? 'win' : 'linux'
}-unpacked/${projectName}${isWin ? '.exe' : ''}`,
// Make sure tests do not interfere with each other
port: await portfinder.getPortPromise(),
// Increase wait timeout for parallel testing
waitTimeout: 10000
})
await app.start()
const win = app.browserWindow
const client = app.client
await client.waitUntilWindowLoaded()
// Make sure tests do not interfere with each other
port: await portfinder.getPortPromise(),
// Increase wait timeout for parallel testing
waitTimeout: 10000
})
await app.start()
const win = app.browserWindow
const client = app.client
await client.waitUntilWindowLoaded()

// Check that proper info was logged
await checkLogs({ client, projectName, projectPath, mode: 'build' })
// Check that proper info was logged
await checkLogs({ client, projectName, projectPath, mode: 'build' })

// Window was created
expect(await client.getWindowCount()).toBe(1)
// It is not minimized
expect(await win.isMinimized()).toBe(false)
// Dev tools is not open
expect(await win.isDevToolsOpened()).toBe(false)
// Window is visible
expect(await win.isVisible()).toBe(true)
// Size is correct
const { width, height } = await win.getBounds()
expect(width).toBeGreaterThan(0)
expect(height).toBeGreaterThan(0)
// Load was successful
expect(await app.webContents.isLoading()).toBe(false)
// App is loaded properly
expect(
(await client.getHTML('#app')).indexOf(
// Window was created
expect(await client.getWindowCount()).toBe(1)
// It is not minimized
expect(await win.isMinimized()).toBe(false)
// Dev tools is not open
expect(await win.isDevToolsOpened()).toBe(false)
// Window is visible
expect(await win.isVisible()).toBe(true)
// Size is correct
const { width, height } = await win.getBounds()
expect(width).toBeGreaterThan(0)
expect(height).toBeGreaterThan(0)
// Load was successful
expect(await app.webContents.isLoading()).toBe(false)
// App is loaded properly
expect(
(await client.getHTML('#app')).indexOf(
`Welcome to Your Vue.js ${useTS ? '+ TypeScript ' : ''}App`
)
).not.toBe(-1)
)
).not.toBe(-1)

await app.stop()
resolve()
})
await app.stop()
}

module.exports.runTests = runTests
24 changes: 12 additions & 12 deletions __tests__/commands.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ chokidar.watch.mockImplementation(file => {
const serviceRun = jest.fn().mockResolvedValue({ url: 'serveUrl' })
const runCommand = async (command, options = {}, args = {}, rawArgs = []) => {
if (!args._) args._ = []
let commands = {}
const commands = {}
const api = {
// Make app think typescript plugin is installed
hasPlugin: jest.fn().mockReturnValue(true),
Expand Down Expand Up @@ -372,7 +372,7 @@ describe('electron:build', () => {
await runCommand('electron:build')

expect(fs.writeFileSync).toBeCalledWith(
`dist_electron/bundled/package.json`,
'dist_electron/bundled/package.json',
JSON.stringify({
dependencies: {
external: '^0.0.1'
Expand All @@ -396,7 +396,7 @@ describe('electron:build', () => {
const mockRun = jest
.fn()
.mockImplementation((cb) => cb(undefined, { hasErrors: () => false }))
webpack.mockReturnValue({run: mockRun})
webpack.mockReturnValue({ run: mockRun })
await runCommand('electron:build', {
pluginOptions: {
electronBuilder: {
Expand All @@ -408,7 +408,7 @@ describe('electron:build', () => {
expect(webpack).toBeCalledTimes(2)
const preloadWebpackCall = webpack.mock.calls[1][0]
expect(preloadWebpackCall.target).toBe('electron-preload')
expect(preloadWebpackCall.entry).toEqual({preload: ['projectPath/preloadFile']})
expect(preloadWebpackCall.entry).toEqual({ preload: ['projectPath/preloadFile'] })
// Make sure preload bundle has been run
expect(mockRun).toHaveBeenCalledTimes(2)
webpack.mockClear()
Expand All @@ -418,11 +418,11 @@ describe('electron:build', () => {
const mockRun = jest
.fn()
.mockImplementation((cb) => cb(undefined, { hasErrors: () => false }))
webpack.mockReturnValue({run: mockRun})
webpack.mockReturnValue({ run: mockRun })
await runCommand('electron:build', {
pluginOptions: {
electronBuilder: {
preload: {firstPreload: 'preload1', secondPreload: 'preload2'}
preload: { firstPreload: 'preload1', secondPreload: 'preload2' }
}
}
})
Expand Down Expand Up @@ -642,7 +642,7 @@ describe('electron:serve', () => {
test('Main process is recompiled and Electron is relaunched when file in list change', async () => {
// So we can make sure it wasn't called
jest.spyOn(process, 'exit')
let watchCb = {}
const watchCb = {}
chokidar.watch.mockImplementation(files => {
return {
on: (type, cb) => {
Expand Down Expand Up @@ -768,7 +768,7 @@ describe('electron:serve', () => {
})

expect(fs.copySync).toBeCalledWith(
`projectPath/./package.json`,
'projectPath/./package.json',
'outputDir/package.json'
)
})
Expand Down Expand Up @@ -852,7 +852,7 @@ describe('electron:serve', () => {
const mockRun = jest
.fn()
.mockImplementation((cb) => cb(undefined, { hasErrors: () => false }))
webpack.mockReturnValue({run: mockRun})
webpack.mockReturnValue({ run: mockRun })
await runCommand('electron:build', {
pluginOptions: {
electronBuilder: {
Expand All @@ -864,7 +864,7 @@ describe('electron:serve', () => {
expect(webpack).toBeCalledTimes(2)
const preloadWebpackCall = webpack.mock.calls[1][0]
expect(preloadWebpackCall.target).toBe('electron-preload')
expect(preloadWebpackCall.entry).toEqual({preload: ['projectPath/preloadFile']})
expect(preloadWebpackCall.entry).toEqual({ preload: ['projectPath/preloadFile'] })
// Make sure preload bundle has been run
expect(mockRun).toHaveBeenCalledTimes(2)
webpack.mockClear()
Expand All @@ -874,11 +874,11 @@ describe('electron:serve', () => {
const mockRun = jest
.fn()
.mockImplementation((cb) => cb(undefined, { hasErrors: () => false }))
webpack.mockReturnValue({run: mockRun})
webpack.mockReturnValue({ run: mockRun })
await runCommand('electron:build', {
pluginOptions: {
electronBuilder: {
preload: {firstPreload: 'preload1', secondPreload: 'preload2'}
preload: { firstPreload: 'preload1', secondPreload: 'preload2' }
}
}
})
Expand Down
Loading

0 comments on commit 096d3b1

Please sign in to comment.