mirror of
https://github.com/lana-k/sqliteviz.git
synced 2025-12-07 02:28:54 +08:00
format
This commit is contained in:
@@ -6,7 +6,6 @@ import CsvJsonImport from '@/components/CsvJsonImport'
|
||||
import csv from '@/lib/csv'
|
||||
import { nextTick } from 'vue'
|
||||
|
||||
|
||||
describe('CsvJsonImport.vue', () => {
|
||||
let state = {}
|
||||
let actions = {}
|
||||
@@ -74,13 +73,15 @@ describe('CsvJsonImport.vue', () => {
|
||||
}
|
||||
},
|
||||
rowCount: 2,
|
||||
messages: [{
|
||||
code: 'UndetectableDelimiter',
|
||||
message: 'Comma was used as a standart delimiter',
|
||||
row: 0,
|
||||
type: 'info',
|
||||
hint: undefined
|
||||
}]
|
||||
messages: [
|
||||
{
|
||||
code: 'UndetectableDelimiter',
|
||||
message: 'Comma was used as a standart delimiter',
|
||||
row: 0,
|
||||
type: 'info',
|
||||
hint: undefined
|
||||
}
|
||||
]
|
||||
})
|
||||
|
||||
wrapper.vm.preview()
|
||||
@@ -89,24 +90,34 @@ describe('CsvJsonImport.vue', () => {
|
||||
await nextTick()
|
||||
expect(wrapper.find('.dialog.vfm').exists()).to.equal(true)
|
||||
expect(wrapper.find('.dialog-header').text()).to.equal('CSV import')
|
||||
expect(wrapper.find('#csv-json-table-name input').element.value).to.equal('my_data')
|
||||
expect(wrapper.findComponent({ name: 'delimiter-selector' }).props('modelValue')).to.equal('|')
|
||||
expect(wrapper.find('#csv-json-table-name input').element.value).to.equal(
|
||||
'my_data'
|
||||
)
|
||||
expect(
|
||||
wrapper.findComponent({ name: 'delimiter-selector' }).props('modelValue')
|
||||
).to.equal('|')
|
||||
expect(wrapper.find('#quote-char input').element.value).to.equal('"')
|
||||
expect(wrapper.find('#escape-char input').element.value).to.equal('"')
|
||||
expect(wrapper.findComponent({ name: 'check-box' }).vm.checked).to.equal(true)
|
||||
expect(wrapper.findComponent({ name: 'check-box' }).vm.checked).to.equal(
|
||||
true
|
||||
)
|
||||
const rows = wrapper.findAll('tbody tr')
|
||||
expect(rows).to.have.lengthOf(2)
|
||||
expect(rows[0].findAll('td')[0].text()).to.equal('foo')
|
||||
expect(rows[0].findAll('td')[1].text()).to.equal('1')
|
||||
expect(rows[1].findAll('td')[0].text()).to.equal('bar')
|
||||
expect(rows[1].findAll('td')[1].text()).to.equal('2')
|
||||
expect(wrapper.findComponent({ name: 'logs' }).text())
|
||||
.to.include('Information about row 0. Comma was used as a standart delimiter.')
|
||||
expect(wrapper.findComponent({ name: 'logs' }).text())
|
||||
.to.include('Preview parsing is completed in')
|
||||
expect(wrapper.findComponent({ name: 'logs' }).text()).to.include(
|
||||
'Information about row 0. Comma was used as a standart delimiter.'
|
||||
)
|
||||
expect(wrapper.findComponent({ name: 'logs' }).text()).to.include(
|
||||
'Preview parsing is completed in'
|
||||
)
|
||||
expect(wrapper.find('#import-finish').isVisible()).to.equal(false)
|
||||
expect(wrapper.find('#import-start').isVisible()).to.equal(true)
|
||||
expect(wrapper.find('#import-start').attributes().disabled).to.equal(undefined)
|
||||
expect(wrapper.find('#import-start').attributes().disabled).to.equal(
|
||||
undefined
|
||||
)
|
||||
})
|
||||
|
||||
it('disables import if no rows found', async () => {
|
||||
@@ -129,8 +140,9 @@ describe('CsvJsonImport.vue', () => {
|
||||
await nextTick()
|
||||
const rows = wrapper.findAll('tbody tr')
|
||||
expect(rows).to.have.lengthOf(0)
|
||||
expect(wrapper.findComponent({ name: 'logs' }).text())
|
||||
.to.include('No rows to import.')
|
||||
expect(wrapper.findComponent({ name: 'logs' }).text()).to.include(
|
||||
'No rows to import.'
|
||||
)
|
||||
expect(wrapper.find('.no-data').isVisible()).to.equal(true)
|
||||
expect(wrapper.find('#import-finish').isVisible()).to.equal(false)
|
||||
expect(wrapper.find('#import-start').isVisible()).to.equal(true)
|
||||
@@ -177,8 +189,9 @@ describe('CsvJsonImport.vue', () => {
|
||||
expect(rows).to.have.lengthOf(1)
|
||||
expect(rows[0].findAll('td')[0].text()).to.equal('bar')
|
||||
expect(rows[0].findAll('td')[1].text()).to.equal('2')
|
||||
expect(wrapper.findComponent({ name: 'logs' }).text())
|
||||
.to.include('Preview parsing is completed in')
|
||||
expect(wrapper.findComponent({ name: 'logs' }).text()).to.include(
|
||||
'Preview parsing is completed in'
|
||||
)
|
||||
|
||||
parse.onCall(2).resolves({
|
||||
delimiter: ',',
|
||||
@@ -191,13 +204,15 @@ describe('CsvJsonImport.vue', () => {
|
||||
},
|
||||
rowCount: 1,
|
||||
hasErrors: true,
|
||||
messages: [{
|
||||
code: 'MissingQuotes',
|
||||
message: 'Quote is missed',
|
||||
row: 0,
|
||||
type: 'error',
|
||||
hint: 'Edit your CSV so that the field has a closing quote char.'
|
||||
}]
|
||||
messages: [
|
||||
{
|
||||
code: 'MissingQuotes',
|
||||
message: 'Quote is missed',
|
||||
row: 0,
|
||||
type: 'error',
|
||||
hint: 'Edit your CSV so that the field has a closing quote char.'
|
||||
}
|
||||
]
|
||||
})
|
||||
|
||||
await wrapper.find('#quote-char input').setValue("'")
|
||||
@@ -207,13 +222,13 @@ describe('CsvJsonImport.vue', () => {
|
||||
expect(rows).to.have.lengthOf(1)
|
||||
expect(rows[0].findAll('td')[0].text()).to.equal('baz')
|
||||
expect(rows[0].findAll('td')[1].text()).to.equal('3')
|
||||
expect(wrapper.findComponent({ name: 'logs' }).text())
|
||||
.to.contain(
|
||||
'Error in row 0. Quote is missed. ' +
|
||||
expect(wrapper.findComponent({ name: 'logs' }).text()).to.contain(
|
||||
'Error in row 0. Quote is missed. ' +
|
||||
'Edit your CSV so that the field has a closing quote char.'
|
||||
)
|
||||
expect(wrapper.findComponent({ name: 'logs' }).text())
|
||||
.to.not.contain('Preview parsing is completed in')
|
||||
)
|
||||
expect(wrapper.findComponent({ name: 'logs' }).text()).to.not.contain(
|
||||
'Preview parsing is completed in'
|
||||
)
|
||||
|
||||
parse.onCall(3).resolves({
|
||||
delimiter: ',',
|
||||
@@ -234,8 +249,9 @@ describe('CsvJsonImport.vue', () => {
|
||||
expect(rows).to.have.lengthOf(1)
|
||||
expect(rows[0].findAll('td')[0].text()).to.equal('qux')
|
||||
expect(rows[0].findAll('td')[1].text()).to.equal('4')
|
||||
expect(wrapper.findComponent({ name: 'logs' }).text())
|
||||
.to.contain('Preview parsing is completed in')
|
||||
expect(wrapper.findComponent({ name: 'logs' }).text()).to.contain(
|
||||
'Preview parsing is completed in'
|
||||
)
|
||||
|
||||
parse.onCall(4).resolves({
|
||||
delimiter: ',',
|
||||
@@ -257,8 +273,9 @@ describe('CsvJsonImport.vue', () => {
|
||||
expect(rows[0].findAll('td')[0].text()).to.equal('corge')
|
||||
expect(rows[0].findAll('td')[1].text()).to.equal('5')
|
||||
|
||||
expect(wrapper.findComponent({ name: 'logs' }).text())
|
||||
.to.include('Preview parsing is completed in')
|
||||
expect(wrapper.findComponent({ name: 'logs' }).text()).to.include(
|
||||
'Preview parsing is completed in'
|
||||
)
|
||||
})
|
||||
|
||||
it('has proper state before parsing is complete', async () => {
|
||||
@@ -282,42 +299,55 @@ describe('CsvJsonImport.vue', () => {
|
||||
await nextTick()
|
||||
|
||||
let resolveParsing
|
||||
parse.onCall(1).returns(new Promise(resolve => {
|
||||
resolveParsing = () => resolve({
|
||||
delimiter: '|',
|
||||
data: {
|
||||
columns: ['col1', 'col2'],
|
||||
values: {
|
||||
col1: [1],
|
||||
col2: ['foo']
|
||||
}
|
||||
},
|
||||
rowCount: 1,
|
||||
messages: []
|
||||
parse.onCall(1).returns(
|
||||
new Promise(resolve => {
|
||||
resolveParsing = () =>
|
||||
resolve({
|
||||
delimiter: '|',
|
||||
data: {
|
||||
columns: ['col1', 'col2'],
|
||||
values: {
|
||||
col1: [1],
|
||||
col2: ['foo']
|
||||
}
|
||||
},
|
||||
rowCount: 1,
|
||||
messages: []
|
||||
})
|
||||
})
|
||||
}))
|
||||
)
|
||||
|
||||
await wrapper.find('#csv-json-table-name input').setValue('foo')
|
||||
await wrapper.find('#import-start').trigger('click')
|
||||
|
||||
// "Parsing CSV..." in the logs
|
||||
expect(wrapper.findComponent({ name: 'logs' }).findAll('.msg')[1].text())
|
||||
.to.equal('Parsing CSV...')
|
||||
expect(
|
||||
wrapper.findComponent({ name: 'logs' }).findAll('.msg')[1].text()
|
||||
).to.equal('Parsing CSV...')
|
||||
|
||||
// After 1 second - loading indicator is shown
|
||||
await clock.tick(1000)
|
||||
expect(
|
||||
wrapper.findComponent({ name: 'logs' }).findComponent({ name: 'LoadingIndicator' }).exists()
|
||||
wrapper
|
||||
.findComponent({ name: 'logs' })
|
||||
.findComponent({ name: 'LoadingIndicator' })
|
||||
.exists()
|
||||
).to.equal(true)
|
||||
|
||||
// All the dialog controls are disabled
|
||||
expect(wrapper.findComponent({ name: 'delimiter-selector' }).vm.disabled).to.equal(true)
|
||||
expect(
|
||||
wrapper.findComponent({ name: 'delimiter-selector' }).vm.disabled
|
||||
).to.equal(true)
|
||||
expect(wrapper.find('#quote-char input').element.disabled).to.equal(true)
|
||||
expect(wrapper.find('#escape-char input').element.disabled).to.equal(true)
|
||||
expect(wrapper.findComponent({ name: 'check-box' }).vm.disabled).to.equal(true)
|
||||
expect(wrapper.findComponent({ name: 'check-box' }).vm.disabled).to.equal(
|
||||
true
|
||||
)
|
||||
expect(wrapper.find('#import-cancel').element.disabled).to.equal(true)
|
||||
expect(wrapper.find('#import-finish').element.disabled).to.equal(true)
|
||||
expect(wrapper.findComponent({ name: 'close-icon' }).vm.disabled).to.equal(true)
|
||||
expect(wrapper.findComponent({ name: 'close-icon' }).vm.disabled).to.equal(
|
||||
true
|
||||
)
|
||||
expect(wrapper.find('#import-finish').isVisible()).to.equal(false)
|
||||
expect(wrapper.find('#import-start').isVisible()).to.equal(true)
|
||||
await resolveParsing()
|
||||
@@ -325,7 +355,10 @@ describe('CsvJsonImport.vue', () => {
|
||||
|
||||
// Loading indicator is not shown when parsing is compete
|
||||
expect(
|
||||
wrapper.findComponent({ name: 'logs' }).findComponent({ name: 'LoadingIndicator' }).exists()
|
||||
wrapper
|
||||
.findComponent({ name: 'logs' })
|
||||
.findComponent({ name: 'LoadingIndicator' })
|
||||
.exists()
|
||||
).to.equal(false)
|
||||
})
|
||||
|
||||
@@ -365,26 +398,35 @@ describe('CsvJsonImport.vue', () => {
|
||||
await nextTick()
|
||||
|
||||
let resolveImport
|
||||
wrapper.vm.db.addTableFromCsv.onCall(0).returns(new Promise(resolve => {
|
||||
resolveImport = resolve
|
||||
}))
|
||||
wrapper.vm.db.addTableFromCsv.onCall(0).returns(
|
||||
new Promise(resolve => {
|
||||
resolveImport = resolve
|
||||
})
|
||||
)
|
||||
|
||||
await wrapper.find('#csv-json-table-name input').setValue('foo')
|
||||
await wrapper.find('#import-start').trigger('click')
|
||||
await csv.parse.returnValues[1]
|
||||
|
||||
// Parsing success in the logs
|
||||
expect(wrapper.findComponent({ name: 'logs' }).findAll('.msg')[1].text())
|
||||
.to.include('2 rows are parsed successfully in')
|
||||
expect(
|
||||
wrapper.findComponent({ name: 'logs' }).findAll('.msg')[1].text()
|
||||
).to.include('2 rows are parsed successfully in')
|
||||
|
||||
// All the dialog controls are disabled
|
||||
expect(wrapper.findComponent({ name: 'delimiter-selector' }).vm.disabled).to.equal(true)
|
||||
expect(
|
||||
wrapper.findComponent({ name: 'delimiter-selector' }).vm.disabled
|
||||
).to.equal(true)
|
||||
expect(wrapper.find('#quote-char input').element.disabled).to.equal(true)
|
||||
expect(wrapper.find('#escape-char input').element.disabled).to.equal(true)
|
||||
expect(wrapper.findComponent({ name: 'check-box' }).vm.disabled).to.equal(true)
|
||||
expect(wrapper.findComponent({ name: 'check-box' }).vm.disabled).to.equal(
|
||||
true
|
||||
)
|
||||
expect(wrapper.find('#import-cancel').element.disabled).to.equal(true)
|
||||
expect(wrapper.find('#import-finish').element.disabled).to.equal(true)
|
||||
expect(wrapper.findComponent({ name: 'close-icon' }).vm.disabled).to.equal(true)
|
||||
expect(wrapper.findComponent({ name: 'close-icon' }).vm.disabled).to.equal(
|
||||
true
|
||||
)
|
||||
expect(wrapper.find('#import-finish').isVisible()).to.equal(false)
|
||||
expect(wrapper.find('#import-start').isVisible()).to.equal(true)
|
||||
await resolveImport()
|
||||
@@ -417,18 +459,22 @@ describe('CsvJsonImport.vue', () => {
|
||||
},
|
||||
rowCount: 2,
|
||||
hasErrors: false,
|
||||
messages: [{
|
||||
code: 'UndetectableDelimiter',
|
||||
message: 'Comma was used as a standart delimiter',
|
||||
type: 'info',
|
||||
hint: undefined
|
||||
}]
|
||||
messages: [
|
||||
{
|
||||
code: 'UndetectableDelimiter',
|
||||
message: 'Comma was used as a standart delimiter',
|
||||
type: 'info',
|
||||
hint: undefined
|
||||
}
|
||||
]
|
||||
})
|
||||
|
||||
let resolveImport
|
||||
wrapper.vm.db.addTableFromCsv.onCall(0).returns(new Promise(resolve => {
|
||||
resolveImport = resolve
|
||||
}))
|
||||
wrapper.vm.db.addTableFromCsv.onCall(0).returns(
|
||||
new Promise(resolve => {
|
||||
resolveImport = resolve
|
||||
})
|
||||
)
|
||||
|
||||
wrapper.vm.preview()
|
||||
wrapper.vm.open()
|
||||
@@ -446,13 +492,19 @@ describe('CsvJsonImport.vue', () => {
|
||||
expect(logs[2].text()).to.equals('Comma was used as a standart delimiter.')
|
||||
|
||||
// All the dialog controls are disabled
|
||||
expect(wrapper.findComponent({ name: 'delimiter-selector' }).vm.disabled).to.equal(true)
|
||||
expect(
|
||||
wrapper.findComponent({ name: 'delimiter-selector' }).vm.disabled
|
||||
).to.equal(true)
|
||||
expect(wrapper.find('#quote-char input').element.disabled).to.equal(true)
|
||||
expect(wrapper.find('#escape-char input').element.disabled).to.equal(true)
|
||||
expect(wrapper.findComponent({ name: 'check-box' }).vm.disabled).to.equal(true)
|
||||
expect(wrapper.findComponent({ name: 'check-box' }).vm.disabled).to.equal(
|
||||
true
|
||||
)
|
||||
expect(wrapper.find('#import-cancel').element.disabled).to.equal(true)
|
||||
expect(wrapper.find('#import-finish').element.disabled).to.equal(true)
|
||||
expect(wrapper.findComponent({ name: 'close-icon' }).vm.disabled).to.equal(true)
|
||||
expect(wrapper.findComponent({ name: 'close-icon' }).vm.disabled).to.equal(
|
||||
true
|
||||
)
|
||||
expect(wrapper.find('#import-finish').isVisible()).to.equal(false)
|
||||
expect(wrapper.find('#import-start').isVisible()).to.equal(true)
|
||||
await resolveImport()
|
||||
@@ -485,12 +537,14 @@ describe('CsvJsonImport.vue', () => {
|
||||
},
|
||||
rowCount: 2,
|
||||
hasErrors: true,
|
||||
messages: [{
|
||||
code: 'Error',
|
||||
message: 'Something is wrong',
|
||||
type: 'error',
|
||||
hint: undefined
|
||||
}]
|
||||
messages: [
|
||||
{
|
||||
code: 'Error',
|
||||
message: 'Something is wrong',
|
||||
type: 'error',
|
||||
hint: undefined
|
||||
}
|
||||
]
|
||||
})
|
||||
|
||||
wrapper.vm.preview()
|
||||
@@ -509,13 +563,19 @@ describe('CsvJsonImport.vue', () => {
|
||||
expect(logs[2].text()).to.equals('Something is wrong.')
|
||||
|
||||
// All the dialog controls are enabled
|
||||
expect(wrapper.findComponent({ name: 'delimiter-selector' }).vm.disabled).to.equal(false)
|
||||
expect(
|
||||
wrapper.findComponent({ name: 'delimiter-selector' }).vm.disabled
|
||||
).to.equal(false)
|
||||
expect(wrapper.find('#quote-char input').element.disabled).to.equal(false)
|
||||
expect(wrapper.find('#escape-char input').element.disabled).to.equal(false)
|
||||
expect(wrapper.findComponent({ name: 'check-box' }).vm.disabled).to.equal(false)
|
||||
expect(wrapper.findComponent({ name: 'check-box' }).vm.disabled).to.equal(
|
||||
false
|
||||
)
|
||||
expect(wrapper.find('#import-cancel').element.disabled).to.equal(false)
|
||||
expect(wrapper.find('#import-finish').element.disabled).to.equal(false)
|
||||
expect(wrapper.findComponent({ name: 'close-icon' }).vm.disabled).to.equal(false)
|
||||
expect(wrapper.findComponent({ name: 'close-icon' }).vm.disabled).to.equal(
|
||||
false
|
||||
)
|
||||
expect(wrapper.find('#import-finish').isVisible()).to.equal(false)
|
||||
expect(wrapper.find('#import-start').isVisible()).to.equal(true)
|
||||
})
|
||||
@@ -551,8 +611,11 @@ describe('CsvJsonImport.vue', () => {
|
||||
})
|
||||
|
||||
let resolveImport = sinon.stub()
|
||||
wrapper.vm.db.addTableFromCsv = sinon.stub()
|
||||
.resolves(new Promise(resolve => { resolveImport = resolve }))
|
||||
wrapper.vm.db.addTableFromCsv = sinon.stub().resolves(
|
||||
new Promise(resolve => {
|
||||
resolveImport = resolve
|
||||
})
|
||||
)
|
||||
|
||||
wrapper.vm.preview()
|
||||
wrapper.vm.open()
|
||||
@@ -564,23 +627,33 @@ describe('CsvJsonImport.vue', () => {
|
||||
await csv.parse.returnValues[1]
|
||||
|
||||
// Parsing success in the logs
|
||||
expect(wrapper.findComponent({ name: 'logs' }).findAll('.msg')[2].text())
|
||||
.to.equal('Importing CSV into a SQLite database...')
|
||||
expect(
|
||||
wrapper.findComponent({ name: 'logs' }).findAll('.msg')[2].text()
|
||||
).to.equal('Importing CSV into a SQLite database...')
|
||||
|
||||
// After 1 second - loading indicator is shown
|
||||
await clock.tick(1000)
|
||||
expect(
|
||||
wrapper.findComponent({ name: 'logs' }).findComponent({ name: 'LoadingIndicator' }).exists()
|
||||
wrapper
|
||||
.findComponent({ name: 'logs' })
|
||||
.findComponent({ name: 'LoadingIndicator' })
|
||||
.exists()
|
||||
).to.equal(true)
|
||||
|
||||
// All the dialog controls are disabled
|
||||
expect(wrapper.findComponent({ name: 'delimiter-selector' }).vm.disabled).to.equal(true)
|
||||
expect(
|
||||
wrapper.findComponent({ name: 'delimiter-selector' }).vm.disabled
|
||||
).to.equal(true)
|
||||
expect(wrapper.find('#quote-char input').element.disabled).to.equal(true)
|
||||
expect(wrapper.find('#escape-char input').element.disabled).to.equal(true)
|
||||
expect(wrapper.findComponent({ name: 'check-box' }).vm.disabled).to.equal(true)
|
||||
expect(wrapper.findComponent({ name: 'check-box' }).vm.disabled).to.equal(
|
||||
true
|
||||
)
|
||||
expect(wrapper.find('#import-cancel').element.disabled).to.equal(true)
|
||||
expect(wrapper.find('#import-finish').element.disabled).to.equal(true)
|
||||
expect(wrapper.findComponent({ name: 'close-icon' }).vm.disabled).to.equal(true)
|
||||
expect(wrapper.findComponent({ name: 'close-icon' }).vm.disabled).to.equal(
|
||||
true
|
||||
)
|
||||
expect(wrapper.find('#import-finish').isVisible()).to.equal(false)
|
||||
expect(wrapper.find('#import-start').isVisible()).to.equal(true)
|
||||
expect(wrapper.vm.db.addTableFromCsv.getCall(0).args[0]).to.equal('foo') // table name
|
||||
@@ -589,7 +662,10 @@ describe('CsvJsonImport.vue', () => {
|
||||
await resolveImport()
|
||||
await wrapper.vm.db.addTableFromCsv.returnValues[0]
|
||||
expect(
|
||||
wrapper.findComponent({ name: 'logs' }).findComponent({ name: 'LoadingIndicator' }).exists()
|
||||
wrapper
|
||||
.findComponent({ name: 'logs' })
|
||||
.findComponent({ name: 'LoadingIndicator' })
|
||||
.exists()
|
||||
).to.equal(false)
|
||||
})
|
||||
|
||||
@@ -635,16 +711,24 @@ describe('CsvJsonImport.vue', () => {
|
||||
// Import success in the logs
|
||||
const logs = wrapper.findComponent({ name: 'logs' }).findAll('.msg')
|
||||
expect(logs).to.have.lengthOf(3)
|
||||
expect(logs[2].text()).to.contain('Importing CSV into a SQLite database is completed in')
|
||||
expect(logs[2].text()).to.contain(
|
||||
'Importing CSV into a SQLite database is completed in'
|
||||
)
|
||||
|
||||
// All the dialog controls are enabled
|
||||
expect(wrapper.findComponent({ name: 'delimiter-selector' }).vm.disabled).to.equal(false)
|
||||
expect(
|
||||
wrapper.findComponent({ name: 'delimiter-selector' }).vm.disabled
|
||||
).to.equal(false)
|
||||
expect(wrapper.find('#quote-char input').element.disabled).to.equal(false)
|
||||
expect(wrapper.find('#escape-char input').element.disabled).to.equal(false)
|
||||
expect(wrapper.findComponent({ name: 'check-box' }).vm.disabled).to.equal(false)
|
||||
expect(wrapper.findComponent({ name: 'check-box' }).vm.disabled).to.equal(
|
||||
false
|
||||
)
|
||||
expect(wrapper.find('#import-cancel').element.disabled).to.equal(false)
|
||||
expect(wrapper.find('#import-finish').element.disabled).to.equal(false)
|
||||
expect(wrapper.findComponent({ name: 'close-icon' }).vm.disabled).to.equal(false)
|
||||
expect(wrapper.findComponent({ name: 'close-icon' }).vm.disabled).to.equal(
|
||||
false
|
||||
)
|
||||
expect(wrapper.find('#import-finish').isVisible()).to.equal(true)
|
||||
})
|
||||
|
||||
@@ -696,13 +780,19 @@ describe('CsvJsonImport.vue', () => {
|
||||
expect(logs[3].text()).to.equal('Error: fail.')
|
||||
|
||||
// All the dialog controls are enabled
|
||||
expect(wrapper.findComponent({ name: 'delimiter-selector' }).vm.disabled).to.equal(false)
|
||||
expect(
|
||||
wrapper.findComponent({ name: 'delimiter-selector' }).vm.disabled
|
||||
).to.equal(false)
|
||||
expect(wrapper.find('#quote-char input').element.disabled).to.equal(false)
|
||||
expect(wrapper.find('#escape-char input').element.disabled).to.equal(false)
|
||||
expect(wrapper.findComponent({ name: 'check-box' }).vm.disabled).to.equal(false)
|
||||
expect(wrapper.findComponent({ name: 'check-box' }).vm.disabled).to.equal(
|
||||
false
|
||||
)
|
||||
expect(wrapper.find('#import-cancel').element.disabled).to.equal(false)
|
||||
expect(wrapper.find('#import-finish').element.disabled).to.equal(false)
|
||||
expect(wrapper.findComponent({ name: 'close-icon' }).vm.disabled).to.equal(false)
|
||||
expect(wrapper.findComponent({ name: 'close-icon' }).vm.disabled).to.equal(
|
||||
false
|
||||
)
|
||||
expect(wrapper.find('#import-finish').isVisible()).to.equal(false)
|
||||
})
|
||||
|
||||
@@ -733,7 +823,9 @@ describe('CsvJsonImport.vue', () => {
|
||||
await clock.tick(100)
|
||||
expect(actions.addTab.calledOnce).to.equal(true)
|
||||
await actions.addTab.returnValues[0]
|
||||
expect(mutations.setCurrentTabId.calledOnceWith(state, newTabId)).to.equal(true)
|
||||
expect(mutations.setCurrentTabId.calledOnceWith(state, newTabId)).to.equal(
|
||||
true
|
||||
)
|
||||
expect(wrapper.find('.dialog.vfm').exists()).to.equal(false)
|
||||
expect(wrapper.emitted('finish')).to.have.lengthOf(1)
|
||||
})
|
||||
@@ -764,7 +856,9 @@ describe('CsvJsonImport.vue', () => {
|
||||
await wrapper.find('#import-cancel').trigger('click')
|
||||
await clock.tick(100)
|
||||
expect(wrapper.find('.dialog.vfm').exists()).to.equal(false)
|
||||
expect(wrapper.vm.db.execute.calledOnceWith('DROP TABLE "my_data"')).to.equal(true)
|
||||
expect(
|
||||
wrapper.vm.db.execute.calledOnceWith('DROP TABLE "my_data"')
|
||||
).to.equal(true)
|
||||
expect(wrapper.vm.db.refreshSchema.calledOnce).to.equal(true)
|
||||
expect(wrapper.emitted('cancel')).to.have.lengthOf(1)
|
||||
})
|
||||
@@ -783,23 +877,31 @@ describe('CsvJsonImport.vue', () => {
|
||||
await wrapper.find('#csv-json-table-name input').setValue('foo')
|
||||
await clock.tick(400)
|
||||
await nextTick()
|
||||
expect(wrapper.find('#csv-json-table-name .text-field-error').text()).to.equal('')
|
||||
expect(
|
||||
wrapper.find('#csv-json-table-name .text-field-error').text()
|
||||
).to.equal('')
|
||||
|
||||
wrapper.vm.db.validateTableName = sinon.stub().rejects(new Error('this is a bad table name'))
|
||||
wrapper.vm.db.validateTableName = sinon
|
||||
.stub()
|
||||
.rejects(new Error('this is a bad table name'))
|
||||
await wrapper.find('#csv-json-table-name input').setValue('bar')
|
||||
await clock.tick(400)
|
||||
await nextTick()
|
||||
expect(wrapper.find('#csv-json-table-name .text-field-error').text())
|
||||
.to.equal('this is a bad table name. Try another table name.')
|
||||
expect(
|
||||
wrapper.find('#csv-json-table-name .text-field-error').text()
|
||||
).to.equal('this is a bad table name. Try another table name.')
|
||||
|
||||
await wrapper.find('#csv-json-table-name input').setValue('')
|
||||
await clock.tick(400)
|
||||
await nextTick()
|
||||
expect(wrapper.find('#csv-json-table-name .text-field-error').text()).to.equal('')
|
||||
expect(
|
||||
wrapper.find('#csv-json-table-name .text-field-error').text()
|
||||
).to.equal('')
|
||||
|
||||
await wrapper.find('#import-start').trigger('click')
|
||||
expect(wrapper.find('#csv-json-table-name .text-field-error').text())
|
||||
.to.equal("Table name can't be empty")
|
||||
expect(
|
||||
wrapper.find('#csv-json-table-name .text-field-error').text()
|
||||
).to.equal("Table name can't be empty")
|
||||
expect(wrapper.vm.db.addTableFromCsv.called).to.equal(false)
|
||||
})
|
||||
})
|
||||
@@ -812,12 +914,14 @@ describe('CsvJsonImport.vue - json', () => {
|
||||
let wrapper
|
||||
const newTabId = 1
|
||||
const file = new File(
|
||||
[new Blob(
|
||||
[JSON.stringify({ foo: [1, 2, 3] }, null, 2)],
|
||||
{ type: 'application/json' }
|
||||
)],
|
||||
[
|
||||
new Blob([JSON.stringify({ foo: [1, 2, 3] }, null, 2)], {
|
||||
type: 'application/json'
|
||||
})
|
||||
],
|
||||
'my data.json',
|
||||
{ type: 'application/json' })
|
||||
{ type: 'application/json' }
|
||||
)
|
||||
|
||||
beforeEach(() => {
|
||||
clock = sinon.useFakeTimers()
|
||||
@@ -845,7 +949,7 @@ describe('CsvJsonImport.vue - json', () => {
|
||||
|
||||
// mount the component
|
||||
wrapper = mount(CsvJsonImport, {
|
||||
global: {
|
||||
global: {
|
||||
plugins: [store],
|
||||
stubs: {
|
||||
teleport: true,
|
||||
@@ -873,25 +977,25 @@ describe('CsvJsonImport.vue - json', () => {
|
||||
await nextTick()
|
||||
expect(wrapper.find('.dialog.vfm').exists()).to.equal(true)
|
||||
expect(wrapper.find('.dialog-header').text()).to.equal('JSON import')
|
||||
expect(wrapper.find('#csv-json-table-name input').element.value).to.equal('my_data')
|
||||
expect(wrapper.findComponent({ name: 'delimiter-selector' }).exists()).to.equal(false)
|
||||
expect(wrapper.find('#csv-json-table-name input').element.value).to.equal(
|
||||
'my_data'
|
||||
)
|
||||
expect(
|
||||
wrapper.findComponent({ name: 'delimiter-selector' }).exists()
|
||||
).to.equal(false)
|
||||
expect(wrapper.find('#quote-char input').exists()).to.equal(false)
|
||||
expect(wrapper.find('#escape-char input').exists()).to.equal(false)
|
||||
expect(wrapper.findComponent({ name: 'check-box' }).exists()).to.equal(false)
|
||||
expect(wrapper.findComponent({ name: 'check-box' }).exists()).to.equal(
|
||||
false
|
||||
)
|
||||
const rows = wrapper.findAll('tbody tr')
|
||||
expect(rows).to.have.lengthOf(1)
|
||||
expect(rows[0].findAll('td')[0].text()).to.equal([
|
||||
'{',
|
||||
' "foo": [',
|
||||
' 1,',
|
||||
' 2,',
|
||||
' 3',
|
||||
' ]',
|
||||
'}'
|
||||
].join('\n')
|
||||
expect(rows[0].findAll('td')[0].text()).to.equal(
|
||||
['{', ' "foo": [', ' 1,', ' 2,', ' 3', ' ]', '}'].join('\n')
|
||||
)
|
||||
expect(wrapper.findComponent({ name: 'logs' }).text()).to.include(
|
||||
'Preview parsing is completed in'
|
||||
)
|
||||
expect(wrapper.findComponent({ name: 'logs' }).text())
|
||||
.to.include('Preview parsing is completed in')
|
||||
expect(wrapper.find('#import-finish').isVisible()).to.equal(false)
|
||||
expect(wrapper.find('#import-start').isVisible()).to.equal(true)
|
||||
})
|
||||
@@ -912,20 +1016,23 @@ describe('CsvJsonImport.vue - json', () => {
|
||||
})
|
||||
|
||||
let resolveParsing
|
||||
getJsonParseResult.onCall(1).returns(new Promise(resolve => {
|
||||
resolveParsing = () => resolve({
|
||||
delimiter: '|',
|
||||
data: {
|
||||
columns: ['doc'],
|
||||
values: {
|
||||
doc: ['{ "foo": [ 1, 2, 3 ] }']
|
||||
}
|
||||
},
|
||||
rowCount: 1,
|
||||
hasErrors: false,
|
||||
messages: []
|
||||
getJsonParseResult.onCall(1).returns(
|
||||
new Promise(resolve => {
|
||||
resolveParsing = () =>
|
||||
resolve({
|
||||
delimiter: '|',
|
||||
data: {
|
||||
columns: ['doc'],
|
||||
values: {
|
||||
doc: ['{ "foo": [ 1, 2, 3 ] }']
|
||||
}
|
||||
},
|
||||
rowCount: 1,
|
||||
hasErrors: false,
|
||||
messages: []
|
||||
})
|
||||
})
|
||||
}))
|
||||
)
|
||||
|
||||
await wrapper.vm.preview()
|
||||
await wrapper.vm.open()
|
||||
@@ -937,19 +1044,25 @@ describe('CsvJsonImport.vue - json', () => {
|
||||
await nextTick()
|
||||
|
||||
// "Parsing JSON..." in the logs
|
||||
expect(wrapper.findComponent({ name: 'logs' }).findAll('.msg')[1].text())
|
||||
.to.equal('Parsing JSON...')
|
||||
expect(
|
||||
wrapper.findComponent({ name: 'logs' }).findAll('.msg')[1].text()
|
||||
).to.equal('Parsing JSON...')
|
||||
|
||||
// After 1 second - loading indicator is shown
|
||||
await clock.tick(1000)
|
||||
expect(
|
||||
wrapper.findComponent({ name: 'logs' }).findComponent({ name: 'LoadingIndicator' }).exists()
|
||||
wrapper
|
||||
.findComponent({ name: 'logs' })
|
||||
.findComponent({ name: 'LoadingIndicator' })
|
||||
.exists()
|
||||
).to.equal(true)
|
||||
|
||||
// All the dialog controls are disabled
|
||||
expect(wrapper.find('#import-cancel').element.disabled).to.equal(true)
|
||||
expect(wrapper.find('#import-finish').element.disabled).to.equal(true)
|
||||
expect(wrapper.findComponent({ name: 'close-icon' }).vm.disabled).to.equal(true)
|
||||
expect(wrapper.findComponent({ name: 'close-icon' }).vm.disabled).to.equal(
|
||||
true
|
||||
)
|
||||
expect(wrapper.find('#import-finish').isVisible()).to.equal(false)
|
||||
expect(wrapper.find('#import-start').isVisible()).to.equal(true)
|
||||
await resolveParsing()
|
||||
@@ -957,7 +1070,10 @@ describe('CsvJsonImport.vue - json', () => {
|
||||
|
||||
// Loading indicator is not shown when parsing is compete
|
||||
expect(
|
||||
wrapper.findComponent({ name: 'logs' }).findComponent({ name: 'LoadingIndicator' }).exists()
|
||||
wrapper
|
||||
.findComponent({ name: 'logs' })
|
||||
.findComponent({ name: 'LoadingIndicator' })
|
||||
.exists()
|
||||
).to.equal(false)
|
||||
})
|
||||
|
||||
@@ -965,8 +1081,11 @@ describe('CsvJsonImport.vue - json', () => {
|
||||
const getJsonParseResult = sinon.spy(wrapper.vm, 'getJsonParseResult')
|
||||
|
||||
let resolveImport = sinon.stub()
|
||||
wrapper.vm.db.addTableFromCsv = sinon.stub()
|
||||
.resolves(new Promise(resolve => { resolveImport = resolve }))
|
||||
wrapper.vm.db.addTableFromCsv = sinon.stub().resolves(
|
||||
new Promise(resolve => {
|
||||
resolveImport = resolve
|
||||
})
|
||||
)
|
||||
|
||||
await wrapper.vm.preview()
|
||||
await wrapper.vm.open()
|
||||
@@ -979,19 +1098,25 @@ describe('CsvJsonImport.vue - json', () => {
|
||||
await nextTick()
|
||||
|
||||
// Parsing success in the logs
|
||||
expect(wrapper.findComponent({ name: 'logs' }).findAll('.msg')[2].text())
|
||||
.to.equal('Importing JSON into a SQLite database...')
|
||||
expect(
|
||||
wrapper.findComponent({ name: 'logs' }).findAll('.msg')[2].text()
|
||||
).to.equal('Importing JSON into a SQLite database...')
|
||||
|
||||
// After 1 second - loading indicator is shown
|
||||
await clock.tick(1000)
|
||||
expect(
|
||||
wrapper.findComponent({ name: 'logs' }).findComponent({ name: 'LoadingIndicator' }).exists()
|
||||
wrapper
|
||||
.findComponent({ name: 'logs' })
|
||||
.findComponent({ name: 'LoadingIndicator' })
|
||||
.exists()
|
||||
).to.equal(true)
|
||||
|
||||
// All the dialog controls are disabled
|
||||
expect(wrapper.find('#import-cancel').element.disabled).to.equal(true)
|
||||
expect(wrapper.find('#import-finish').element.disabled).to.equal(true)
|
||||
expect(wrapper.findComponent({ name: 'close-icon' }).vm.disabled).to.equal(true)
|
||||
expect(wrapper.findComponent({ name: 'close-icon' }).vm.disabled).to.equal(
|
||||
true
|
||||
)
|
||||
expect(wrapper.find('#import-finish').isVisible()).to.equal(false)
|
||||
expect(wrapper.find('#import-start').isVisible()).to.equal(true)
|
||||
expect(wrapper.vm.db.addTableFromCsv.getCall(0).args[0]).to.equal('foo') // table name
|
||||
@@ -1000,7 +1125,10 @@ describe('CsvJsonImport.vue - json', () => {
|
||||
await resolveImport()
|
||||
await wrapper.vm.db.addTableFromCsv.returnValues[0]
|
||||
expect(
|
||||
wrapper.findComponent({ name: 'logs' }).findComponent({ name: 'LoadingIndicator' }).exists()
|
||||
wrapper
|
||||
.findComponent({ name: 'logs' })
|
||||
.findComponent({ name: 'LoadingIndicator' })
|
||||
.exists()
|
||||
).to.equal(false)
|
||||
})
|
||||
|
||||
@@ -1021,12 +1149,16 @@ describe('CsvJsonImport.vue - json', () => {
|
||||
// Import success in the logs
|
||||
const logs = wrapper.findComponent({ name: 'logs' }).findAll('.msg')
|
||||
expect(logs).to.have.lengthOf(3)
|
||||
expect(logs[2].text()).to.contain('Importing JSON into a SQLite database is completed in')
|
||||
expect(logs[2].text()).to.contain(
|
||||
'Importing JSON into a SQLite database is completed in'
|
||||
)
|
||||
|
||||
// All the dialog controls are enabled
|
||||
expect(wrapper.find('#import-cancel').element.disabled).to.equal(false)
|
||||
expect(wrapper.find('#import-finish').element.disabled).to.equal(false)
|
||||
expect(wrapper.findComponent({ name: 'close-icon' }).vm.disabled).to.equal(false)
|
||||
expect(wrapper.findComponent({ name: 'close-icon' }).vm.disabled).to.equal(
|
||||
false
|
||||
)
|
||||
expect(wrapper.find('#import-finish').isVisible()).to.equal(true)
|
||||
})
|
||||
})
|
||||
@@ -1106,16 +1238,23 @@ describe('CsvJsonImport.vue - ndjson', () => {
|
||||
await nextTick()
|
||||
expect(wrapper.find('.dialog.vfm').exists()).to.equal(true)
|
||||
expect(wrapper.find('.dialog-header').text()).to.equal('JSON import')
|
||||
expect(wrapper.find('#csv-json-table-name input').element.value).to.equal('my_data')
|
||||
expect(wrapper.findComponent({ name: 'delimiter-selector' }).exists()).to.equal(false)
|
||||
expect(wrapper.find('#csv-json-table-name input').element.value).to.equal(
|
||||
'my_data'
|
||||
)
|
||||
expect(
|
||||
wrapper.findComponent({ name: 'delimiter-selector' }).exists()
|
||||
).to.equal(false)
|
||||
expect(wrapper.find('#quote-char input').exists()).to.equal(false)
|
||||
expect(wrapper.find('#escape-char input').exists()).to.equal(false)
|
||||
expect(wrapper.findComponent({ name: 'check-box' }).exists()).to.equal(false)
|
||||
expect(wrapper.findComponent({ name: 'check-box' }).exists()).to.equal(
|
||||
false
|
||||
)
|
||||
const rows = wrapper.findAll('tbody tr')
|
||||
expect(rows).to.have.lengthOf(1)
|
||||
expect(rows[0].findAll('td')[0].text()).to.equal('{ "foo": [ 1, 2, 3 ] }')
|
||||
expect(wrapper.findComponent({ name: 'logs' }).text())
|
||||
.to.include('Preview parsing is completed in')
|
||||
expect(wrapper.findComponent({ name: 'logs' }).text()).to.include(
|
||||
'Preview parsing is completed in'
|
||||
)
|
||||
expect(wrapper.find('#import-finish').isVisible()).to.equal(false)
|
||||
expect(wrapper.find('#import-start').isVisible()).to.equal(true)
|
||||
})
|
||||
@@ -1139,38 +1278,47 @@ describe('CsvJsonImport.vue - ndjson', () => {
|
||||
await nextTick()
|
||||
|
||||
let resolveParsing
|
||||
parse.onCall(1).returns(new Promise(resolve => {
|
||||
resolveParsing = () => resolve({
|
||||
delimiter: '|',
|
||||
data: {
|
||||
columns: ['doc'],
|
||||
values: {
|
||||
doc: ['{ "foo": [ 1, 2, 3 ] }']
|
||||
}
|
||||
},
|
||||
rowCount: 1,
|
||||
messages: []
|
||||
parse.onCall(1).returns(
|
||||
new Promise(resolve => {
|
||||
resolveParsing = () =>
|
||||
resolve({
|
||||
delimiter: '|',
|
||||
data: {
|
||||
columns: ['doc'],
|
||||
values: {
|
||||
doc: ['{ "foo": [ 1, 2, 3 ] }']
|
||||
}
|
||||
},
|
||||
rowCount: 1,
|
||||
messages: []
|
||||
})
|
||||
})
|
||||
}))
|
||||
)
|
||||
|
||||
await wrapper.find('#csv-json-table-name input').setValue('foo')
|
||||
await wrapper.find('#import-start').trigger('click')
|
||||
await nextTick()
|
||||
|
||||
// "Parsing JSON..." in the logs
|
||||
expect(wrapper.findComponent({ name: 'logs' }).findAll('.msg')[1].text())
|
||||
.to.equal('Parsing JSON...')
|
||||
expect(
|
||||
wrapper.findComponent({ name: 'logs' }).findAll('.msg')[1].text()
|
||||
).to.equal('Parsing JSON...')
|
||||
|
||||
// After 1 second - loading indicator is shown
|
||||
await clock.tick(1000)
|
||||
expect(
|
||||
wrapper.findComponent({ name: 'logs' }).findComponent({ name: 'LoadingIndicator' }).exists()
|
||||
wrapper
|
||||
.findComponent({ name: 'logs' })
|
||||
.findComponent({ name: 'LoadingIndicator' })
|
||||
.exists()
|
||||
).to.equal(true)
|
||||
|
||||
// All the dialog controls are disabled
|
||||
expect(wrapper.find('#import-cancel').element.disabled).to.equal(true)
|
||||
expect(wrapper.find('#import-finish').element.disabled).to.equal(true)
|
||||
expect(wrapper.findComponent({ name: 'close-icon' }).vm.disabled).to.equal(true)
|
||||
expect(wrapper.findComponent({ name: 'close-icon' }).vm.disabled).to.equal(
|
||||
true
|
||||
)
|
||||
expect(wrapper.find('#import-finish').isVisible()).to.equal(false)
|
||||
expect(wrapper.find('#import-start').isVisible()).to.equal(true)
|
||||
await resolveParsing()
|
||||
@@ -1178,7 +1326,10 @@ describe('CsvJsonImport.vue - ndjson', () => {
|
||||
|
||||
// Loading indicator is not shown when parsing is compete
|
||||
expect(
|
||||
wrapper.findComponent({ name: 'logs' }).findComponent({ name: 'LoadingIndicator' }).exists()
|
||||
wrapper
|
||||
.findComponent({ name: 'logs' })
|
||||
.findComponent({ name: 'LoadingIndicator' })
|
||||
.exists()
|
||||
).to.equal(false)
|
||||
})
|
||||
|
||||
@@ -1211,8 +1362,11 @@ describe('CsvJsonImport.vue - ndjson', () => {
|
||||
})
|
||||
|
||||
let resolveImport = sinon.stub()
|
||||
wrapper.vm.db.addTableFromCsv = sinon.stub()
|
||||
.resolves(new Promise(resolve => { resolveImport = resolve }))
|
||||
wrapper.vm.db.addTableFromCsv = sinon.stub().resolves(
|
||||
new Promise(resolve => {
|
||||
resolveImport = resolve
|
||||
})
|
||||
)
|
||||
|
||||
wrapper.vm.preview()
|
||||
wrapper.vm.open()
|
||||
@@ -1225,19 +1379,25 @@ describe('CsvJsonImport.vue - ndjson', () => {
|
||||
await nextTick()
|
||||
|
||||
// Parsing success in the logs
|
||||
expect(wrapper.findComponent({ name: 'logs' }).findAll('.msg')[2].text())
|
||||
.to.equal('Importing JSON into a SQLite database...')
|
||||
expect(
|
||||
wrapper.findComponent({ name: 'logs' }).findAll('.msg')[2].text()
|
||||
).to.equal('Importing JSON into a SQLite database...')
|
||||
|
||||
// After 1 second - loading indicator is shown
|
||||
await clock.tick(1000)
|
||||
expect(
|
||||
wrapper.findComponent({ name: 'logs' }).findComponent({ name: 'LoadingIndicator' }).exists()
|
||||
wrapper
|
||||
.findComponent({ name: 'logs' })
|
||||
.findComponent({ name: 'LoadingIndicator' })
|
||||
.exists()
|
||||
).to.equal(true)
|
||||
|
||||
// All the dialog controls are disabled
|
||||
expect(wrapper.find('#import-cancel').element.disabled).to.equal(true)
|
||||
expect(wrapper.find('#import-finish').element.disabled).to.equal(true)
|
||||
expect(wrapper.findComponent({ name: 'close-icon' }).vm.disabled).to.equal(true)
|
||||
expect(wrapper.findComponent({ name: 'close-icon' }).vm.disabled).to.equal(
|
||||
true
|
||||
)
|
||||
expect(wrapper.find('#import-finish').isVisible()).to.equal(false)
|
||||
expect(wrapper.find('#import-start').isVisible()).to.equal(true)
|
||||
expect(wrapper.vm.db.addTableFromCsv.getCall(0).args[0]).to.equal('foo') // table name
|
||||
@@ -1246,7 +1406,10 @@ describe('CsvJsonImport.vue - ndjson', () => {
|
||||
await resolveImport()
|
||||
await wrapper.vm.db.addTableFromCsv.returnValues[0]
|
||||
expect(
|
||||
wrapper.findComponent({ name: 'logs' }).findComponent({ name: 'LoadingIndicator' }).exists()
|
||||
wrapper
|
||||
.findComponent({ name: 'logs' })
|
||||
.findComponent({ name: 'LoadingIndicator' })
|
||||
.exists()
|
||||
).to.equal(false)
|
||||
})
|
||||
|
||||
@@ -1291,12 +1454,16 @@ describe('CsvJsonImport.vue - ndjson', () => {
|
||||
// Import success in the logs
|
||||
const logs = wrapper.findComponent({ name: 'logs' }).findAll('.msg')
|
||||
expect(logs).to.have.lengthOf(3)
|
||||
expect(logs[2].text()).to.contain('Importing JSON into a SQLite database is completed in')
|
||||
expect(logs[2].text()).to.contain(
|
||||
'Importing JSON into a SQLite database is completed in'
|
||||
)
|
||||
|
||||
// All the dialog controls are enabled
|
||||
expect(wrapper.find('#import-cancel').element.disabled).to.equal(false)
|
||||
expect(wrapper.find('#import-finish').element.disabled).to.equal(false)
|
||||
expect(wrapper.findComponent({ name: 'close-icon' }).vm.disabled).to.equal(false)
|
||||
expect(wrapper.findComponent({ name: 'close-icon' }).vm.disabled).to.equal(
|
||||
false
|
||||
)
|
||||
expect(wrapper.find('#import-finish').isVisible()).to.equal(true)
|
||||
})
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user