diff --git a/e2e-tests/cypress/e2e/charts.cy.js b/e2e-tests/cypress/e2e/charts.cy.js index 7fa193907..b5b00019c 100644 --- a/e2e-tests/cypress/e2e/charts.cy.js +++ b/e2e-tests/cypress/e2e/charts.cy.js @@ -24,4 +24,28 @@ describe('Charts', () => { cy.testid('chart-canvas').should($c => expect($c[0].toDataURL()).to.match(/^data:image\/png;base64/)); cy.themeshot('choose-detected-chart'); }); + + it('Two line charts', () => { + cy.contains('MySql-connection').click(); + cy.contains('MyChinook').click(); + cy.testid('TabsPanel_buttonNewQuery').click(); + cy.wait(1000); + cy.get('body').realType('SELECT InvoiceDate, Total from Invoice'); + cy.contains('Execute').click(); + cy.contains('Open chart').click(); + cy.testid('chart-canvas').should($c => expect($c[0].toDataURL()).to.match(/^data:image\/png;base64/)); + cy.themeshot('two-line-charts'); + }); + + it('Invoice naive autodetection', () => { + cy.contains('MySql-connection').click(); + cy.contains('MyChinook').click(); + cy.testid('TabsPanel_buttonNewQuery').click(); + cy.wait(1000); + cy.get('body').realType('SELECT * from Invoice'); + cy.contains('Execute').click(); + cy.contains('Open chart').click(); + cy.testid('chart-canvas').should($c => expect($c[0].toDataURL()).to.match(/^data:image\/png;base64/)); + cy.themeshot('chart-naive-autodetection'); + }); }); diff --git a/e2e-tests/init/charts.js b/e2e-tests/init/charts.js index f5119f94d..a9046a6fb 100644 --- a/e2e-tests/init/charts.js +++ b/e2e-tests/init/charts.js @@ -18,6 +18,42 @@ async function copyFolder(source, target) { } } +async function initMySqlDatabase(dbname, inputFile) { + await dbgateApi.executeQuery({ + connection: { + server: process.env.SERVER_mysql, + user: process.env.USER_mysql, + password: process.env.PASSWORD_mysql, + port: process.env.PORT_mysql, + engine: 'mysql@dbgate-plugin-mysql', + }, + sql: `drop database if exists ${dbname}`, + }); + + await dbgateApi.executeQuery({ + connection: { + server: process.env.SERVER_mysql, + user: process.env.USER_mysql, + password: process.env.PASSWORD_mysql, + port: process.env.PORT_mysql, + engine: 'mysql@dbgate-plugin-mysql', + }, + sql: `create database ${dbname}`, + }); + + await dbgateApi.importDatabase({ + connection: { + server: process.env.SERVER_mysql, + user: process.env.USER_mysql, + password: process.env.PASSWORD_mysql, + port: process.env.PORT_mysql, + database: dbname, + engine: 'mysql@dbgate-plugin-mysql', + }, + inputFile, + }); +} + async function run() { const connection = { server: process.env.SERVER_mysql, @@ -53,6 +89,8 @@ async function run() { path.resolve(path.join(__dirname, '../data/files/sql')), path.join(baseDir, 'files-e2etests', 'sql') ); + + await initMySqlDatabase('MyChinook', path.resolve(path.join(__dirname, '../data/chinook-mysql.sql'))); } dbgateApi.runScript(run);