Skip to content

Commit

Permalink
wip: update tests
Browse files Browse the repository at this point in the history
  • Loading branch information
krocheck committed Sep 30, 2024
1 parent 6baedfd commit 91d37f5
Show file tree
Hide file tree
Showing 11 changed files with 33,707 additions and 59 deletions.
13 changes: 13 additions & 0 deletions companion/lib/Data/StoreBase.ts
Original file line number Diff line number Diff line change
Expand Up @@ -280,6 +280,19 @@ export abstract class DataStoreBase {
return !!row
}

/**
* Import raw data into a table
* @param table - the table to import to
* @param data - the data
*/
public importTable(table: string, data: any) {
if (typeof data === 'object') {
for (const [key, value] of Object.entries(data)) {
this.setTableKey(table, key, value)
}
}
}

/**
* Save the defaults since a file could not be found/loaded/parsed
*/
Expand Down
2 changes: 1 addition & 1 deletion companion/lib/Data/Upgrade.ts
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ export function upgradeStartup(db: DataDatabase): void {
allUpgrades[i - 1].upgradeStartup(db, logger)
}

db.setKey('page_config_version', targetVersion)
//db.setKey('page_config_version', targetVersion)
}
}

Expand Down
29 changes: 22 additions & 7 deletions companion/lib/Data/Upgrades/v1tov2.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,13 @@ function convertDatabase15To32(db: DataStoreBase, _logger: Logger): void {
oldReleaseActions[page] = res.release_actions
oldFeedbacks[page] = res.feedbacks
}

db.setKey('bank', oldBankConfig)
db.setKey('bank_actions', oldActions)
db.setKey('bank_release_actions', oldReleaseActions)
db.setKey('feedbacks', oldFeedbacks)

db.setKey("page_config_version", 2)
}

function convertPage15To32(oldObj: any): any {
Expand All @@ -48,19 +55,27 @@ function convertPage15To32(oldObj: any): any {
result.config[bank] = {}
result.actions[bank] = []
result.release_actions[bank] = []
result.feedbacks[bank] = []
//result.feedbacks[bank] = []
}

// copy across the old buttons
for (let oldBank = 1; oldBank <= 12; oldBank++) {
const newBank = from12to32(oldBank)

result.config[newBank] = oldPageConfig[oldBank]
upgradeBankStyle(result.config[newBank])
if (oldPageConfig[oldBank]) {
result.config[newBank] = oldPageConfig[oldBank]
upgradeBankStyle(result.config[newBank])
}

result.actions[newBank] = oldPageActions[oldBank]
result.release_actions[newBank] = oldPageReleaseActions[oldBank]
result.feedbacks[newBank] = oldPageFeedbacks[oldBank]
if (oldPageActions[oldBank]) {
result.actions[newBank] = oldPageActions[oldBank]
}
if (oldPageReleaseActions[oldBank]) {
result.release_actions[newBank] = oldPageReleaseActions[oldBank]
}
if (oldPageFeedbacks[oldBank]) {
result.feedbacks[newBank] = oldPageFeedbacks[oldBank]
}
}

// Add navigation keys
Expand Down Expand Up @@ -144,7 +159,7 @@ function from12to32(key: number): number {

if (res >= 32) {
console.debug('assert: old config had bigger pages than expected')
return 31
return 32
}
return res
}
Expand Down
4 changes: 4 additions & 0 deletions companion/lib/Data/Upgrades/v2tov3.ts
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,11 @@ function convertToControls(db: DataStoreBase): void {
db.deleteKey('bank')
db.deleteKey('feedbacks')
db.deleteKey('bank_action_sets')
db.deleteKey('bank_rotate_left_actions')
db.deleteKey('bank_rotate_right_actions')
db.setKey('controls', newControls)

db.setKey("page_config_version", 3)
}

// patch v3 pre https://github.com/bitfocus/companion/pull/2187
Expand Down
44 changes: 44 additions & 0 deletions companion/test/Upgrade/v1tov2-upgradeStartup.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
import { describe, it, expect } from 'vitest'
import { DataStoreBase, DatabaseDefault } from '../../lib/Data/StoreBase.js'
import LogController from '../../lib/Log/Controller.js'
import v1tov2 from '../../lib/Data/Upgrades/v1tov2.js'
import { createTables } from '../../lib/Data/Schema/v1.js'
import fs from 'fs-extra'

function CreateDataDatabase() {
const db = new DataDatabase()

let data = fs.readFileSync('./companion/test/Upgrade/v1tov2/db.v1.json', 'utf8')
data = JSON.parse(data)

db.importTable('main', data)

return db
}

class DataDatabase extends DataStoreBase {
static Defaults: DatabaseDefault = {
main: {
page_config_version: 3,
},
}
constructor() {
super(':memory:', '', 'main', 'Data/Database')
this.startSQLite()
}
protected create(): void {
createTables(this.store, this.defaultTable, this.logger)
}
protected loadDefaults(): void {}
protected migrateFileToSqlite(): void {}
}

describe('upgrade', () => {
it('empty', () => {
const db = CreateDataDatabase()
v1tov2.upgradeStartup(db, LogController.createLogger('test-logger'))
let data = fs.readFileSync('./companion/test/Upgrade/v1tov2/db.v2.json', 'utf8')
data = JSON.parse(data)
expect(db.getTable('main')).toEqual(data)
})
})
Loading

0 comments on commit 91d37f5

Please sign in to comment.