From 14589815c49f04ae287f7946c29893fac01e2ae8 Mon Sep 17 00:00:00 2001 From: Steven Hugg Date: Mon, 29 Jun 2020 11:06:19 -0500 Subject: [PATCH] 3.5.2, fixed tests --- package.json | 2 +- src/ide/store.ts | 3 +- test/cli/teststore.js | 121 ++++++++++++++++-------------------------- 3 files changed, 50 insertions(+), 76 deletions(-) diff --git a/package.json b/package.json index 0f3e1531..ca9d75be 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "8bitworkshop", - "version": "3.5.1", + "version": "3.5.2", "author": "Steven Hugg", "description": "8bitworkshop.com", "repository": { diff --git a/src/ide/store.ts b/src/ide/store.ts index 3293adba..250d9a48 100644 --- a/src/ide/store.ts +++ b/src/ide/store.ts @@ -4,10 +4,11 @@ declare var localforage; -export function createNewPersistentStore(storeid:string) { +export function createNewPersistentStore(storeid:string, callback?) { var store = localforage.createInstance({ name: "__" + storeid, version: 2.0 }); + if (callback != null) { callback(store); } // for tests only return store; } diff --git a/test/cli/teststore.js b/test/cli/teststore.js index c81267b3..5883e232 100644 --- a/test/cli/teststore.js +++ b/test/cli/teststore.js @@ -12,117 +12,90 @@ var prj = require("gen/ide/project.js"); var test_platform_id = "_TEST"; -describe('Store', function() { - it('Should convert from local storage', function(done) { - localStorage.clear(); - localStorage.setItem('_TEST/test', 'a'); - localStorage.setItem('_TEST/local/test', 'b'); - assert.equal(2, localMods); - var store = mstore.createNewPersistentStore(test_platform_id, function(store) { - assert.equal('true', localItems['__migrated__TEST']); - store.getItem('test', function(err, result) { - if (err) done(err); - // did it convert? - assert.equal(result, 'a'); - assert.equal(7, localMods); - // did we not mess with original storage? - assert.equal(localStorage.getItem('_TEST/test'), 'a'); - assert.equal(localStorage.getItem('_TEST/local/test'), 'b'); - done(); - }); - }); - }); +describe('Store', function () { - it('Should load local project', function(done) { - localStorage.clear(); - localStorage.setItem('_TEST/local/test', 'a'); - var store = mstore.createNewPersistentStore(test_platform_id, function(store) { + it('Should load local project', function (done) { + var store = mstore.createNewPersistentStore(test_platform_id); + store.setItem('local/test', 'a'); var worker = {}; var platform = {}; var project = new prj.CodeProject(worker, test_platform_id, platform, store); var remote = []; - project.callbackGetRemote = function(path, success, datatype) { + project.callbackGetRemote = function (path, success, datatype) { remote.push(path); success(); }; - project.loadFiles(['local/test','test']).then((result) => { - assert.deepEqual(["presets/_TEST/test"], remote); - assert.deepEqual([ { path: 'local/test', filename: 'local/test', data: 'a', link:true } ], result); - done(); + project.loadFiles(['local/test', 'test']).then((result) => { + assert.deepEqual(["presets/_TEST/test"], remote); + assert.deepEqual([{ path: 'local/test', filename: 'local/test', data: 'a', link: true }], result); + done(); }); - }); }); - it('Should build linked project', function(done) { - localStorage.clear(); - localItems['__migrated__TEST'] = 'true'; - var msgs = []; - var expectmsgs = [ - true, - { preload: 'dasm', platform: '_TEST' }, - { - buildsteps: [ - { path: "test.a", platform: "_TEST", tool: "dasm", mainfile:true, files:["test.a"] }, - ], - updates: [ - { path: "test.a", data: " lda #0" } - ] - } - ]; - var store = mstore.createNewPersistentStore(test_platform_id, (store) => { + it('Should build linked project', function (done) { + var msgs = []; + var expectmsgs = [ + true, + { preload: 'dasm', platform: '_TEST' }, + { + buildsteps: [ + { path: "test.a", platform: "_TEST", tool: "dasm", mainfile: true, files: ["test.a"] }, + ], + updates: [ + { path: "test.a", data: " lda #0" } + ] + } + ]; + var store = mstore.createNewPersistentStore(test_platform_id); var worker = { - postMessage: function(m) { msgs.push(m); }, + postMessage: function (m) { msgs.push(m); }, }; var platform = { - getToolForFilename: function(fn) { return 'dasm'; }, + getToolForFilename: function (fn) { return 'dasm'; }, }; var project = new prj.CodeProject(worker, test_platform_id, platform, store); - project.callbackBuildStatus = function(b) { msgs.push(b) }; + project.callbackBuildStatus = function (b) { msgs.push(b) }; project.updateFile('test.a', ' lda #0'); project.setMainFile('test.a'); setTimeout(() => { - project.updateFile('test.a', ' lda #1'); // don't send twice (yet) - assert.deepEqual(msgs, expectmsgs); - store.getItem('test.a', function(err, result) { - assert.equal(null, err); - assert.equal(' lda #1', result); - done(); - }); + project.updateFile('test.a', ' lda #1'); // don't send twice (yet) + assert.deepEqual(msgs, expectmsgs); + store.getItem('test.a', function (err, result) { + assert.equal(null, err); + assert.equal(' lda #1', result); + done(); + }); }, 1); - }); }); // lines: [ { line: 3, offset: 61440, insns: 'a9 00', iscode: true } ] } - it('Should build asm project', function(done) { - localStorage.clear(); - localItems['__migrated__TEST'] = 'true'; - var msgs = []; - var store = mstore.createNewPersistentStore(test_platform_id, (store) => { + it('Should build asm project', function (done) { + var msgs = []; + var store = mstore.createNewPersistentStore(test_platform_id); var worker = { }; var platform = { }; var project = new prj.CodeProject(worker, test_platform_id, platform, store); - project.callbackBuildStatus = function(b) { msgs.push(b) }; + project.callbackBuildStatus = function (b) { msgs.push(b) }; var buildresult = { - listings: { - test: { - lines: [ { line: 3, offset: 61440, insns: 'a9 00', iscode: true } ] + listings: { + test: { + lines: [{ line: 3, offset: 61440, insns: 'a9 00', iscode: true }] + } } - } }; - worker.onmessage({data:buildresult}); + worker.onmessage({ data: buildresult }); assert.deepEqual([false], msgs); var lst = buildresult.listings.test; console.log(lst); - assert.deepEqual({line:3,offset:61440}, lst.sourcefile.findLineForOffset(61440+15, 15)); - assert.equal(null, lst.sourcefile.findLineForOffset(61440+16, 15)); - assert.equal(null, lst.sourcefile.findLineForOffset(61440+1, 0)); - assert.equal(null, lst.sourcefile.findLineForOffset(61440-1, 16)); + assert.deepEqual({ line: 3, offset: 61440 }, lst.sourcefile.findLineForOffset(61440 + 15, 15)); + assert.equal(null, lst.sourcefile.findLineForOffset(61440 + 16, 15)); + assert.equal(null, lst.sourcefile.findLineForOffset(61440 + 1, 0)); + assert.equal(null, lst.sourcefile.findLineForOffset(61440 - 1, 16)); assert.equal(1, lst.sourcefile.lineCount()); done(); - }); }); });