Skip to content

Commit 2cff5b9

Browse files
committed
test: ensure frontend tests run on generated sf.js
Add assets dependency to test-frontend Make target so tests always execute against freshly bundled sf.js rather than stale files
1 parent 5ff86db commit 2cff5b9

3 files changed

Lines changed: 33 additions & 33 deletions

File tree

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ test-unit:
124124
printf "$(GREEN)$(CHECK) Unit tests passed$(RESET)\n" || \
125125
(printf "$(RED)$(CROSS) Unit tests failed$(RESET)\n" && exit 1)
126126

127-
test-frontend:
127+
test-frontend: assets
128128
@printf "$(PROGRESS) Running frontend tests...\n"
129129
@node --test tests/*.test.js && \
130130
printf "$(GREEN)$(CHECK) Frontend tests passed$(RESET)\n" || \

static/sf/sf.0.6.5.js

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -971,7 +971,7 @@ const SF = (function () {
971971
/**
972972
* Creates a backend adapter for the given transport type.
973973
* @param {BackendConfig} config
974-
* @returns {Backend}
974+
* @returns {BackendAdapter}
975975
*/
976976
sf.createBackend = function (config) {
977977
config = config || {};
@@ -1020,7 +1020,7 @@ const SF = (function () {
10201020
/**
10211021
* Create a new HTTP backend instance.
10221022
* @param {HttpBackendConfig} config
1023-
* @returns {Backend}
1023+
* @returns {BackendAdapter}
10241024
*/
10251025
function createHttpBackend(config) {
10261026
var baseUrl = config.baseUrl || '';
@@ -1132,7 +1132,7 @@ const SF = (function () {
11321132
/**
11331133
* Create a new IPC backend for Tauri
11341134
* @param {TauriBackendConfig} config
1135-
* @returns {Backend}
1135+
* @returns {BackendAdapter}
11361136
*/
11371137
function createTauriBackend(config) {
11381138
sf.assert(typeof config === 'object', 'createBackend({}) is required for Tauri adapter');
@@ -1244,7 +1244,7 @@ const SF = (function () {
12441244
sf.assert(!config.onAnalysis || typeof config.onAnalysis === 'function', 'createSolver(config.onAnalysis) must be a function');
12451245
sf.assert(!config.onError || typeof config.onError === 'function', 'createSolver(config.onError) must be a function');
12461246

1247-
/** @type {Backend} */
1247+
/** @type {SolverBackend} */
12481248
var backend = config.backend;
12491249
/** @type {SolverConfig['statusBar']} */
12501250
var statusBar = config.statusBar;
@@ -1266,7 +1266,7 @@ const SF = (function () {
12661266
var lastMeta = null;
12671267
/** @type {Error|null} */
12681268
var lastNotifiedError = null;
1269-
/** @type {QueuedAction} */
1269+
/** @type {string|null} */
12701270
var queuedAction = null;
12711271
/** @type {Deferred<{snapshot: SolverSnapshot|null, meta: EventMeta, analysis: SolverAnalysis|null}|null>|null} */
12721272
var pendingPause = null;
@@ -1329,7 +1329,7 @@ const SF = (function () {
13291329

13301330
/**
13311331
* Request to pause the current solver job.
1332-
* @returns {Promise<{snapshot: SolverSnapshot|null, meta: EventMeta, analysis: SolverAnalysis|null}|null>}
1332+
* @returns {Promise<{snapshot: SolverSnapshot|null, meta: EventMeta, analysis: SolverAnalysis|null}|void>}
13331333
*/
13341334
api.pause = function () {
13351335
if (pendingPause) return pendingPause.promise;
@@ -1339,7 +1339,7 @@ const SF = (function () {
13391339
return pendingPause.promise;
13401340
}
13411341
var jobId = currentJobId();
1342-
if (phase !== 'solving' || !jobId) return Promise.resolve(null);
1342+
if (phase !== 'solving' || !jobId) return Promise.resolve();
13431343

13441344
pendingPause = createDeferred();
13451345
if (!ensureStreamAttached(runToken, jobId, 'pause')) return pendingPause.promise;
@@ -1349,12 +1349,12 @@ const SF = (function () {
13491349

13501350
/**
13511351
* Resume a paused solver job.
1352-
* @returns {Promise<EventMeta|null>}
1352+
* @returns {Promise<EventMeta|void>}
13531353
*/
13541354
api.resume = function () {
13551355
if (pendingResume) return pendingResume.promise;
13561356
var jobId = currentJobId();
1357-
if (phase !== 'paused' || !jobId) return Promise.resolve(null);
1357+
if (phase !== 'paused' || !jobId) return Promise.resolve();
13581358

13591359
pendingResume = createDeferred();
13601360
if (!ensureStreamAttached(runToken, jobId, 'resume')) return pendingResume.promise;
@@ -1364,7 +1364,7 @@ const SF = (function () {
13641364

13651365
/**
13661366
* Request to cancel the current solver job.
1367-
* @returns {Promise<{snapshot: SolverSnapshot|null, meta: EventMeta, analysis: SolverAnalysis|null}|null>}
1367+
* @returns {Promise<{snapshot: SolverSnapshot|null, meta: EventMeta, analysis: SolverAnalysis|null}|void>}
13681368
*/
13691369
api.cancel = function () {
13701370
if (pendingCancel) return pendingCancel.promise;
@@ -1379,7 +1379,7 @@ const SF = (function () {
13791379
if (!ensureStreamAttached(runToken, jobId, 'cancel')) return pendingCancel.promise;
13801380
return pendingCancel.promise;
13811381
}
1382-
if (!jobId || !isCancelablePhase()) return Promise.resolve(null);
1382+
if (!jobId || !isCancelablePhase()) return Promise.resolve();
13831383

13841384
pendingCancel = createDeferred();
13851385
if (!ensureStreamAttached(runToken, jobId, 'cancel')) return pendingCancel.promise;
@@ -1506,7 +1506,7 @@ const SF = (function () {
15061506
* Ensure the stream is attached, creating it if necessary.
15071507
* @param {number} token
15081508
* @param {string} id
1509-
* @param {DeferredName} pendingName
1509+
* @param {string} pendingName
15101510
* @returns {boolean}
15111511
*/
15121512
function ensureStreamAttached(token, id, pendingName) {
@@ -2083,7 +2083,7 @@ const SF = (function () {
20832083

20842084
/**
20852085
* Resolve a deferred promise.
2086-
* @param {DeferredName} name
2086+
* @param {string} name
20872087
* @param {unknown} value
20882088
*/
20892089
function resolveDeferred(name, value) {
@@ -2095,7 +2095,7 @@ const SF = (function () {
20952095

20962096
/**
20972097
* Reject a deferred promise.
2098-
* @param {DeferredName} name
2098+
* @param {string} name
20992099
* @param {Error} err
21002100
*/
21012101
function rejectDeferred(name, err) {
@@ -2107,7 +2107,7 @@ const SF = (function () {
21072107

21082108
/**
21092109
* Get a deferred by name.
2110-
* @param {DeferredName} name
2110+
* @param {string} name
21112111
* @returns {Deferred<any>|null}
21122112
*/
21132113
function getDeferred(name) {
@@ -2119,7 +2119,7 @@ const SF = (function () {
21192119

21202120
/**
21212121
* Set a deferred by name.
2122-
* @param {DeferredName} name
2122+
* @param {string} name
21232123
* @param {Deferred<any>|null} value
21242124
*/
21252125
function setDeferred(name, value) {

static/sf/sf.js

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -971,7 +971,7 @@ const SF = (function () {
971971
/**
972972
* Creates a backend adapter for the given transport type.
973973
* @param {BackendConfig} config
974-
* @returns {Backend}
974+
* @returns {BackendAdapter}
975975
*/
976976
sf.createBackend = function (config) {
977977
config = config || {};
@@ -1020,7 +1020,7 @@ const SF = (function () {
10201020
/**
10211021
* Create a new HTTP backend instance.
10221022
* @param {HttpBackendConfig} config
1023-
* @returns {Backend}
1023+
* @returns {BackendAdapter}
10241024
*/
10251025
function createHttpBackend(config) {
10261026
var baseUrl = config.baseUrl || '';
@@ -1132,7 +1132,7 @@ const SF = (function () {
11321132
/**
11331133
* Create a new IPC backend for Tauri
11341134
* @param {TauriBackendConfig} config
1135-
* @returns {Backend}
1135+
* @returns {BackendAdapter}
11361136
*/
11371137
function createTauriBackend(config) {
11381138
sf.assert(typeof config === 'object', 'createBackend({}) is required for Tauri adapter');
@@ -1244,7 +1244,7 @@ const SF = (function () {
12441244
sf.assert(!config.onAnalysis || typeof config.onAnalysis === 'function', 'createSolver(config.onAnalysis) must be a function');
12451245
sf.assert(!config.onError || typeof config.onError === 'function', 'createSolver(config.onError) must be a function');
12461246

1247-
/** @type {Backend} */
1247+
/** @type {SolverBackend} */
12481248
var backend = config.backend;
12491249
/** @type {SolverConfig['statusBar']} */
12501250
var statusBar = config.statusBar;
@@ -1266,7 +1266,7 @@ const SF = (function () {
12661266
var lastMeta = null;
12671267
/** @type {Error|null} */
12681268
var lastNotifiedError = null;
1269-
/** @type {QueuedAction} */
1269+
/** @type {string|null} */
12701270
var queuedAction = null;
12711271
/** @type {Deferred<{snapshot: SolverSnapshot|null, meta: EventMeta, analysis: SolverAnalysis|null}|null>|null} */
12721272
var pendingPause = null;
@@ -1329,7 +1329,7 @@ const SF = (function () {
13291329

13301330
/**
13311331
* Request to pause the current solver job.
1332-
* @returns {Promise<{snapshot: SolverSnapshot|null, meta: EventMeta, analysis: SolverAnalysis|null}|null>}
1332+
* @returns {Promise<{snapshot: SolverSnapshot|null, meta: EventMeta, analysis: SolverAnalysis|null}|void>}
13331333
*/
13341334
api.pause = function () {
13351335
if (pendingPause) return pendingPause.promise;
@@ -1339,7 +1339,7 @@ const SF = (function () {
13391339
return pendingPause.promise;
13401340
}
13411341
var jobId = currentJobId();
1342-
if (phase !== 'solving' || !jobId) return Promise.resolve(null);
1342+
if (phase !== 'solving' || !jobId) return Promise.resolve();
13431343

13441344
pendingPause = createDeferred();
13451345
if (!ensureStreamAttached(runToken, jobId, 'pause')) return pendingPause.promise;
@@ -1349,12 +1349,12 @@ const SF = (function () {
13491349

13501350
/**
13511351
* Resume a paused solver job.
1352-
* @returns {Promise<EventMeta|null>}
1352+
* @returns {Promise<EventMeta|void>}
13531353
*/
13541354
api.resume = function () {
13551355
if (pendingResume) return pendingResume.promise;
13561356
var jobId = currentJobId();
1357-
if (phase !== 'paused' || !jobId) return Promise.resolve(null);
1357+
if (phase !== 'paused' || !jobId) return Promise.resolve();
13581358

13591359
pendingResume = createDeferred();
13601360
if (!ensureStreamAttached(runToken, jobId, 'resume')) return pendingResume.promise;
@@ -1364,7 +1364,7 @@ const SF = (function () {
13641364

13651365
/**
13661366
* Request to cancel the current solver job.
1367-
* @returns {Promise<{snapshot: SolverSnapshot|null, meta: EventMeta, analysis: SolverAnalysis|null}|null>}
1367+
* @returns {Promise<{snapshot: SolverSnapshot|null, meta: EventMeta, analysis: SolverAnalysis|null}|void>}
13681368
*/
13691369
api.cancel = function () {
13701370
if (pendingCancel) return pendingCancel.promise;
@@ -1379,7 +1379,7 @@ const SF = (function () {
13791379
if (!ensureStreamAttached(runToken, jobId, 'cancel')) return pendingCancel.promise;
13801380
return pendingCancel.promise;
13811381
}
1382-
if (!jobId || !isCancelablePhase()) return Promise.resolve(null);
1382+
if (!jobId || !isCancelablePhase()) return Promise.resolve();
13831383

13841384
pendingCancel = createDeferred();
13851385
if (!ensureStreamAttached(runToken, jobId, 'cancel')) return pendingCancel.promise;
@@ -1506,7 +1506,7 @@ const SF = (function () {
15061506
* Ensure the stream is attached, creating it if necessary.
15071507
* @param {number} token
15081508
* @param {string} id
1509-
* @param {DeferredName} pendingName
1509+
* @param {string} pendingName
15101510
* @returns {boolean}
15111511
*/
15121512
function ensureStreamAttached(token, id, pendingName) {
@@ -2083,7 +2083,7 @@ const SF = (function () {
20832083

20842084
/**
20852085
* Resolve a deferred promise.
2086-
* @param {DeferredName} name
2086+
* @param {string} name
20872087
* @param {unknown} value
20882088
*/
20892089
function resolveDeferred(name, value) {
@@ -2095,7 +2095,7 @@ const SF = (function () {
20952095

20962096
/**
20972097
* Reject a deferred promise.
2098-
* @param {DeferredName} name
2098+
* @param {string} name
20992099
* @param {Error} err
21002100
*/
21012101
function rejectDeferred(name, err) {
@@ -2107,7 +2107,7 @@ const SF = (function () {
21072107

21082108
/**
21092109
* Get a deferred by name.
2110-
* @param {DeferredName} name
2110+
* @param {string} name
21112111
* @returns {Deferred<any>|null}
21122112
*/
21132113
function getDeferred(name) {
@@ -2119,7 +2119,7 @@ const SF = (function () {
21192119

21202120
/**
21212121
* Set a deferred by name.
2122-
* @param {DeferredName} name
2122+
* @param {string} name
21232123
* @param {Deferred<any>|null} value
21242124
*/
21252125
function setDeferred(name, value) {

0 commit comments

Comments
 (0)