Skip to content

Commit d644a15

Browse files
committed
updates for sqlite methods
1 parent 3ed63fb commit d644a15

File tree

5 files changed

+31
-56
lines changed

5 files changed

+31
-56
lines changed

tests/e2e/helpers/database-scripts.ts

Lines changed: 20 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -4,38 +4,16 @@ import { workingDirectory } from '../helpers/conf';
44
const dbPath = `${workingDirectory}/redisinsight.db`;
55

66
export class DatabaseScripts {
7-
/**
8-
* Find the row index in a table based on a condition in another column
9-
* @param dbTableParameters The sqlite database table parameters
10-
* @returns The index of the row matching the condition
11-
*/
12-
static async getRowIndexFromTableInDB(dbTableParameters: DbTableParameters): Promise<number | null> {
13-
const db = new sqlite3.Database(dbPath);
14-
const query = `SELECT rowid FROM ${dbTableParameters.tableName} WHERE ${dbTableParameters.conditionColumnName} = ?`;
15-
16-
return new Promise<number | null>((resolve, reject) => {
17-
db.get(query, [dbTableParameters.conditionColumnValue], (err: { message: string }, row: any) => {
18-
if (err) {
19-
reject(new Error(`Error during finding row index: ${err.message}`));
20-
}
21-
else {
22-
db.close();
23-
resolve(row ? row.rowid : null); // Return the rowid if a row matches the condition
24-
}
25-
});
26-
});
27-
}
287
/**
298
* Update table column value into local DB for a specific row
309
* @param dbTableParameters The sqlite database table parameters
3110
*/
3211
static async updateColumnValueInDBTable(dbTableParameters: DbTableParameters): Promise<void> {
33-
const rowIndex = await this.getRowIndexFromTableInDB(dbTableParameters);
3412
const db = new sqlite3.Database(dbPath);
35-
const query = `UPDATE ${dbTableParameters.tableName} SET ${dbTableParameters.columnName} = ? WHERE rowid = ?`;
13+
const query = `UPDATE ${dbTableParameters.tableName} SET ${dbTableParameters.columnName} = ? WHERE ${dbTableParameters.conditionWhereColumnName} = ?`;
3614

3715
return new Promise<void>((resolve, reject) => {
38-
db.run(query, [dbTableParameters.rowValue, rowIndex], (err: { message: string }) => {
16+
db.run(query, [dbTableParameters.rowValue, dbTableParameters.conditionWhereColumnValue], (err: { message: string }) => {
3917
if (err) {
4018
reject(new Error(`Error during changing ${dbTableParameters.columnName} column value: ${err.message}`));
4119
}
@@ -52,26 +30,21 @@ export class DatabaseScripts {
5230
* @param dbTableParameters The sqlite database table parameters
5331
*/
5432
static async getColumnValueFromTableInDB(dbTableParameters: DbTableParameters): Promise<any> {
55-
const rowIndex = await DatabaseScripts.getRowIndexFromTableInDB(dbTableParameters);
56-
if (rowIndex !== null) {
57-
const db = new sqlite3.Database(dbPath);
58-
const query = `SELECT ${dbTableParameters.columnName} FROM ${dbTableParameters.tableName} WHERE rowid = ?`;
33+
const db = new sqlite3.Database(dbPath);
34+
const query = `SELECT ${dbTableParameters.columnName} FROM ${dbTableParameters.tableName} WHERE ${dbTableParameters.conditionWhereColumnName} = ?`;
5935

60-
return new Promise<void>((resolve, reject) => {
61-
db.get(query, [rowIndex], (err: { message: string }, row: any) => {
62-
if (err) {
63-
reject(new Error(`Error during getting ${dbTableParameters.columnName} column value: ${err.message}`));
64-
}
65-
else {
66-
const columnValue = row[dbTableParameters.columnName!];
67-
db.close();
68-
resolve(columnValue);
69-
}
70-
});
36+
return new Promise<void>((resolve, reject) => {
37+
db.get(query, [dbTableParameters.conditionWhereColumnValue], (err: { message: string }, row: any) => {
38+
if (err) {
39+
reject(new Error(`Error during getting ${dbTableParameters.columnName} column value: ${err.message}`));
40+
}
41+
else {
42+
const columnValue = row[dbTableParameters.columnName!];
43+
db.close();
44+
resolve(columnValue);
45+
}
7146
});
72-
}
73-
throw new Error(`No matching row found for the given condition in ${dbTableParameters.tableName}`);
74-
47+
});
7548
}
7649

7750
/**
@@ -101,13 +74,13 @@ export class DatabaseScripts {
10174
* @param tableName The name of table in DB
10275
* @param columnName The name of column in table
10376
* @param rowValue Value to update in table
104-
* @param conditionColumnName The name of the column to search
105-
* @param conditionColumnValue The value to match in the column
77+
* @param conditionWhereColumnName The name of the column to search
78+
* @param conditionWhereColumnValue The value to match in the column
10679
*/
10780
export type DbTableParameters = {
10881
tableName: string,
10982
columnName?: string,
11083
rowValue?: string | number,
111-
conditionColumnName?: string,
112-
conditionColumnValue?: string
113-
};
84+
conditionWhereColumnName?: string,
85+
conditionWhereColumnValue?: string
86+
};

tests/e2e/helpers/insights.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ const basePage = new BasePage();
88
const dbTableParams: DbTableParameters = {
99
tableName: 'features_config',
1010
columnName: 'controlNumber',
11-
conditionColumnName: 'id',
12-
conditionColumnValue: '1'
11+
conditionWhereColumnName: 'id',
12+
conditionWhereColumnValue: '1'
1313
};
1414

1515
/**

tests/e2e/tests/web/critical-path/a-first-start-form/user-agreements-form.e2e.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ test('Verify that user should accept User Agreements to continue working with th
2222
await t.expect(userAgreementDialog.submitButton.hasAttribute('disabled')).ok('Submit button not disabled by default');
2323
await t.expect(myRedisDatabasePage.AddRedisDatabase.addDatabaseManually.exists).notOk('User can\'t add a database');
2424
});
25-
test.only('Verify that the encryption enabled by default and specific message', async t => {
25+
test('Verify that the encryption enabled by default and specific message', async t => {
2626
const expectedPluginText = 'To avoid automatic execution of malicious code, when adding new Workbench plugins, use files from trusted authors only.';
2727
// Verify that section with plugin warning is displayed
2828
await t.expect(userAgreementDialog.pluginSectionWithText.exists).ok('Plugin text is not displayed');

tests/e2e/tests/web/critical-path/database/encryption.e2e.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ const dbTableParams: DbTableParameters = {
1616
tableName: 'database_instance',
1717
columnName: 'caCertId',
1818
rowValue: 'invalid',
19-
conditionColumnName: 'name',
20-
conditionColumnValue: ossStandaloneTlsConfig.databaseName
19+
conditionWhereColumnName: 'name',
20+
conditionWhereColumnValue: ossStandaloneTlsConfig.databaseName
2121
};
2222

2323
fixture `Encryption`
@@ -31,7 +31,7 @@ fixture `Encryption`
3131
.afterEach(async() => {
3232
await databaseHelper.deleteDatabase(ossStandaloneTlsConfig.databaseName);
3333
});
34-
test.only('Verify that data encrypted using KEY', async t => {
34+
test('Verify that data encrypted using KEY', async t => {
3535
const decryptionError = 'Unable to decrypt data';
3636
// Connect to DB
3737
await myRedisDatabasePage.clickOnDBByName(ossStandaloneTlsConfig.databaseName);
@@ -40,7 +40,9 @@ test.only('Verify that data encrypted using KEY', async t => {
4040

4141
await DatabaseScripts.updateColumnValueInDBTable(dbTableParams);
4242
// Verify that Encription by KEY applied for connection if RI_ENCRYPTION_KEY variable exists
43-
await t.expect(await DatabaseScripts.getColumnValueFromTableInDB({ ...dbTableParams, columnName: 'encryption' })).eql('KEY', 'Encription is not applied by RI_ENCRYPTION_KEY');
43+
await t
44+
.expect(await DatabaseScripts.getColumnValueFromTableInDB({ ...dbTableParams, columnName: 'encryption' }))
45+
.eql('KEY', 'Encryption is not applied by RI_ENCRYPTION_KEY');
4446
await databaseHelper.clickOnEditDatabaseByName(ossStandaloneTlsConfig.databaseName);
4547
await t.expect(myRedisDatabasePage.Toast.toastError.textContent).contains(decryptionError, 'Invalid encrypted field is decrypted');
4648
});

tests/e2e/tests/web/regression/insights/feature-flag.e2e.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ const pathes = {
2626
const dbTableParams: DbTableParameters = {
2727
tableName: featuresConfigTable,
2828
columnName: 'data',
29-
conditionColumnName: 'id',
30-
conditionColumnValue: '1'
29+
conditionWhereColumnName: 'id',
30+
conditionWhereColumnValue: '1'
3131
};
3232

3333
fixture `Feature flag`

0 commit comments

Comments
 (0)