1
0
mirror of https://github.com/lana-k/sqliteviz.git synced 2025-12-06 18:18:53 +08:00

Pivot implementation and redesign (#69)

- Pivot support implementation 
- Rename queries into inquiries
- Rename editor into workspace
- Change result set format
- New JSON format for inquiries
- Redesign panels
This commit is contained in:
lana-k
2021-08-04 22:20:51 +02:00
committed by GitHub
parent 8d0bc6affe
commit 5017b55944
105 changed files with 4659 additions and 2021 deletions

View File

@@ -10,15 +10,30 @@ describe('actions', () => {
untitledLastIndex: 0
}
const id = await addTab({ state })
expect(state.tabs[0].id).to.eql(id)
expect(state.tabs[0].name).to.eql(null)
expect(state.tabs[0].tempName).to.eql('Untitled')
expect(state.tabs[0].isUnsaved).to.eql(true)
let id = await addTab({ state })
expect(state.tabs[0]).to.eql({
id: id,
name: null,
tempName: 'Untitled',
viewType: 'chart',
viewOptions: undefined,
isSaved: false
})
expect(state.untitledLastIndex).to.equal(1)
id = await addTab({ state })
expect(state.tabs[1]).to.eql({
id: id,
name: null,
tempName: 'Untitled 1',
viewType: 'chart',
viewOptions: undefined,
isSaved: false
})
expect(state.untitledLastIndex).to.equal(2)
})
it('addTab adds tab from saved queries', async () => {
it('addTab adds tab from saved inquiries', async () => {
const state = {
tabs: [],
untitledLastIndex: 0
@@ -28,22 +43,24 @@ describe('actions', () => {
name: 'test',
tempName: null,
query: 'SELECT * from foo',
chart: {},
isUnsaved: false
viewType: 'chart',
viewOptions: {},
isSaved: true
}
await addTab({ state }, tab)
expect(state.tabs[0]).to.eql(tab)
expect(state.untitledLastIndex).to.equal(0)
})
it("addTab doesn't add anything when the query is already opened", async () => {
it("addTab doesn't add anything when the inquiry is already opened", async () => {
const tab1 = {
id: 1,
name: 'test',
tempName: null,
query: 'SELECT * from foo',
chart: {},
isUnsaved: false
viewType: 'chart',
viewOptions: {},
isSaved: true
}
const tab2 = {
@@ -51,8 +68,9 @@ describe('actions', () => {
name: 'bar',
tempName: null,
query: 'SELECT * from bar',
chart: {},
isUnsaved: false
viewType: 'chart',
viewOptions: {},
isSaved: true
}
const state = {

View File

@@ -6,7 +6,7 @@ const {
deleteTab,
setCurrentTabId,
setCurrentTab,
updatePredefinedQueries,
updatePredefinedInquiries,
setDb
} = mutations
@@ -23,14 +23,15 @@ describe('mutations', () => {
expect(oldDb.shutDown.calledOnce).to.equal(true)
})
it('updateTab (save)', () => {
it('updateTab - save', () => {
const tab = {
id: 1,
name: 'test',
tempName: null,
query: 'SELECT * from foo',
chart: {},
isUnsaved: true,
viewType: 'chart',
viewOptions: { here_are: 'chart settings' },
isSaved: false,
isPredefined: false
}
@@ -39,7 +40,9 @@ describe('mutations', () => {
id: 1,
name: 'new test',
query: 'SELECT * from bar',
isUnsaved: false
viewType: 'pivot',
viewOptions: { here_are: 'pivot settings' },
isSaved: true
}
const state = {
@@ -47,21 +50,26 @@ describe('mutations', () => {
}
updateTab(state, newTab)
expect(state.tabs[0].id).to.equal(1)
expect(state.tabs[0].name).to.equal('new test')
expect(state.tabs[0].tempName).to.equal(null)
expect(state.tabs[0].query).to.equal('SELECT * from bar')
expect(state.tabs[0].isUnsaved).to.equal(false)
expect(state.tabs[0]).to.eql({
id: 1,
name: 'new test',
tempName: null,
query: 'SELECT * from bar',
viewType: 'pivot',
viewOptions: { here_are: 'pivot settings' },
isSaved: true
})
})
it('updateTab (save predefined)', () => {
it('updateTab - save predefined', () => {
const tab = {
id: 1,
name: 'test',
tempName: null,
query: 'SELECT * from foo',
chart: {},
isUnsaved: true,
viewType: 'chart',
viewOptions: {},
isSaved: false,
isPredefined: true
}
@@ -70,8 +78,9 @@ describe('mutations', () => {
id: 2,
name: 'new test',
query: 'SELECT * from bar',
chart: {},
isUnsaved: false
viewType: 'chart',
viewOptions: {},
isSaved: true
}
const state = {
@@ -85,18 +94,19 @@ describe('mutations', () => {
expect(state.tabs[0].id).to.equal(2)
expect(state.tabs[0].name).to.equal('new test')
expect(state.tabs[0].query).to.equal('SELECT * from bar')
expect(state.tabs[0].isUnsaved).to.equal(false)
expect(state.tabs[0].isSaved).to.equal(true)
expect(state.tabs[0].isPredefined).to.equal(undefined)
})
it('updateTab (rename)', () => {
it('updateTab - rename', () => {
const tab = {
id: 1,
name: 'test',
tempName: null,
query: 'SELECT * from foo',
chart: {},
isUnsaved: true
viewType: 'chart',
viewOptions: {},
isSaved: false
}
const newTab = {
@@ -114,23 +124,24 @@ describe('mutations', () => {
expect(state.tabs[0].id).to.equal(1)
expect(state.tabs[0].name).to.equal('new test')
expect(state.tabs[0].query).to.equal('SELECT * from foo')
expect(state.tabs[0].isUnsaved).to.equal(true)
expect(state.tabs[0].isSaved).to.equal(false)
})
it('updateTab (changes detected)', () => {
it('updateTab - changes detected', () => {
const tab = {
id: 1,
name: 'test',
tempName: null,
query: 'SELECT * from foo',
chart: {},
isUnsaved: false,
viewType: 'chart',
viewOptions: {},
isSaved: true,
isPredefined: true
}
const newTab = {
index: 0,
isUnsaved: true
isSaved: false
}
const state = {
@@ -142,17 +153,18 @@ describe('mutations', () => {
expect(state.tabs[0].id).to.equal(1)
expect(state.tabs[0].name).to.equal('test')
expect(state.tabs[0].query).to.equal('SELECT * from foo')
expect(state.tabs[0].isUnsaved).to.equal(true)
expect(state.tabs[0].isSaved).to.equal(false)
})
it('deleteTab (opened, first)', () => {
it('deleteTab - opened, first', () => {
const tab1 = {
id: 1,
name: 'foo',
tempName: null,
query: 'SELECT * from foo',
chart: {},
isUnsaved: false
viewType: 'chart',
viewOptions: {},
isSaved: true
}
const tab2 = {
@@ -160,8 +172,9 @@ describe('mutations', () => {
name: 'bar',
tempName: null,
query: 'SELECT * from bar',
chart: {},
isUnsaved: false
viewType: 'chart',
viewOptions: {},
isSaved: true
}
const state = {
@@ -175,14 +188,15 @@ describe('mutations', () => {
expect(state.currentTabId).to.equal(2)
})
it('deleteTab (opened, last)', () => {
it('deleteTab - opened, last', () => {
const tab1 = {
id: 1,
name: 'foo',
tempName: null,
query: 'SELECT * from foo',
chart: {},
isUnsaved: false
viewType: 'chart',
viewOptions: {},
isSaved: true
}
const tab2 = {
@@ -190,8 +204,9 @@ describe('mutations', () => {
name: 'bar',
tempName: null,
query: 'SELECT * from bar',
chart: {},
isUnsaved: false
viewType: 'chart',
viewOptions: {},
isSaved: true
}
const state = {
@@ -205,14 +220,15 @@ describe('mutations', () => {
expect(state.currentTabId).to.equal(1)
})
it('deleteTab (opened, in the middle)', () => {
it('deleteTab - opened, in the middle', () => {
const tab1 = {
id: 1,
name: 'foo',
tempName: null,
query: 'SELECT * from foo',
chart: {},
isUnsaved: false
viewType: 'chart',
viewOptions: {},
isSaved: true
}
const tab2 = {
@@ -220,8 +236,9 @@ describe('mutations', () => {
name: 'bar',
tempName: null,
query: 'SELECT * from bar',
chart: {},
isUnsaved: false
viewType: 'chart',
viewOptions: {},
isSaved: true
}
const tab3 = {
@@ -229,8 +246,9 @@ describe('mutations', () => {
name: 'foobar',
tempName: null,
query: 'SELECT * from foobar',
chart: {},
isUnsaved: false
viewType: 'chart',
viewOptions: {},
isSaved: true
}
const state = {
@@ -245,14 +263,15 @@ describe('mutations', () => {
expect(state.currentTabId).to.equal(3)
})
it('deleteTab (opened, single)', () => {
it('deleteTab - opened, single', () => {
const tab1 = {
id: 1,
name: 'foo',
tempName: null,
query: 'SELECT * from foo',
chart: {},
isUnsaved: false
viewType: 'chart',
viewOptions: {},
isSaved: true
}
const state = {
@@ -265,14 +284,15 @@ describe('mutations', () => {
expect(state.currentTabId).to.equal(null)
})
it('deleteTab (not opened)', () => {
it('deleteTab - not opened', () => {
const tab1 = {
id: 1,
name: 'foo',
tempName: null,
query: 'SELECT * from foo',
chart: {},
isUnsaved: false
viewType: 'chart',
viewOptions: {},
isSaved: true
}
const tab2 = {
@@ -280,8 +300,9 @@ describe('mutations', () => {
name: 'bar',
tempName: null,
query: 'SELECT * from bar',
chart: {},
isUnsaved: false
viewType: 'chart',
viewOptions: {},
isSaved: true
}
const state = {
@@ -313,44 +334,47 @@ describe('mutations', () => {
expect(state.currentTab).to.eql({ id: 2 })
})
it('updatePredefinedQueries (single)', () => {
const query = {
it('updatePredefinedInquiries - single', () => {
const inquiry = {
id: 1,
name: 'foo',
query: 'SELECT * FROM foo',
chart: {},
viewType: 'chart',
viewOptions: {},
createdAt: '2020-11-07T20:57:04.492Z'
}
const state = {
predefinedQueries: []
predefinedInquiries: []
}
updatePredefinedQueries(state, query)
expect(state.predefinedQueries).to.eql([query])
updatePredefinedInquiries(state, inquiry)
expect(state.predefinedInquiries).to.eql([inquiry])
})
it('updatePredefinedQueries (array)', () => {
const queries = [{
it('updatePredefinedInquiries - array', () => {
const inquiries = [{
id: 1,
name: 'foo',
query: 'SELECT * FROM foo',
chart: {},
viewType: 'chart',
viewOptions: {},
createdAt: '2020-11-07T20:57:04.492Z'
},
{
id: 2,
name: 'bar',
query: 'SELECT * FROM bar',
chart: {},
viewType: 'chart',
viewOptions: {},
createdAt: '2020-11-07T20:57:04.492Z'
}]
const state = {
predefinedQueries: []
predefinedInquiries: []
}
updatePredefinedQueries(state, queries)
expect(state.predefinedQueries).to.eql(queries)
updatePredefinedInquiries(state, inquiries)
expect(state.predefinedInquiries).to.eql(inquiries)
})
})