fix tests

This commit is contained in:
Dennis Eichhorn 2024-04-24 16:23:32 +00:00
parent 34298dd7c5
commit c7a9ddb926
69 changed files with 145 additions and 734 deletions

4
.gitignore vendored
View File

@ -13,4 +13,6 @@ node_modules
cache
Cache
Libraries
.idea
.idea
*Spec.js
*spec.js

View File

@ -32,11 +32,15 @@ export class AssetManager
*/
registerLoadedAssets ()
{
this.assets = {};
if (typeof document === 'undefined') {
return;
}
const scripts = document.getElementsByTagName('script');
const length = !scripts ? 0 : scripts.length;
this.assets = {};
for (let i = 0; i < length; ++i) {
this.assets[jsOMS.hash(scripts[i].src)] = scripts[i].src;
}

View File

@ -90,12 +90,19 @@ export class Logger
*/
createContext (message, context, level)
{
context.backtrace = console.trace();
let stack;
try {
throw new Error('');
} catch (e) {
stack = e.stack || '';
}
context.backtrace = stack;
context.datetime = (new Date()).toISOString();
context.version = '1.0.0';
context.os = SystemUtils.getOS();
context.browser = SystemUtils.getBrowser();
context.path = window.location.href;
context.path = typeof window === 'undefined' ? '' : window.location.href;
context.datetime = (new Date()).toString();
context.level = level;
context.message = message;

View File

@ -1,14 +1,13 @@
/**
* Math formula evaluator
* Math processor.
*
* @copyright Dennis Eichhorn
* @license OMS License 2.0
* @version 1.0.0
* @since 1.0.0
*/
(function (jsOMS) {
'use strict';
export class MathProcessor
{
/**
* Evaluate math formula
*
@ -18,18 +17,18 @@
*
* @since 1.0.0
*/
jsOMS.mathEvaluate = function (equation)
static mathEvaluate (equation)
{
const stack = [];
const postfix = jsOMS.shuntingYard(equation);
const postfix = MathProcessor.shuntingYard(equation);
const length = postfix.length;
for (let i = 0; i < length; ++i) {
if (!isNaN(parseFloat(postfix[i])) && isFinite(postfix[i])) {
stack.push(postfix[i]);
} else {
const a = jsOMS.parseValue(stack.pop());
const b = jsOMS.parseValue(stack.pop());
const a = MathProcessor.parseValue(stack.pop());
const b = MathProcessor.parseValue(stack.pop());
if (postfix[i] === '+') {
stack.push(a + b);
@ -59,7 +58,7 @@
*
* @since 1.0.0
*/
jsOMS.parseValue = function (value)
static parseValue (value)
{
return typeof value === 'string' ? (value.indexOf('.') === -1 ? parseInt(value) : parseFloat(value)) : value;
};
@ -73,7 +72,7 @@
*
* @since 1.0.0
*/
jsOMS.shuntingYard = function (equation)
static shuntingYard (equation)
{
const stack = [];
const operators = {
@ -126,4 +125,5 @@
return output;
};
}(window.jsOMS = window.jsOMS || {}));
};

View File

@ -20,9 +20,13 @@ export class SystemUtils
*/
static getBrowser ()
{
/** global: InstallTrigger */
/** global: navigator */
/** global: window */
if (typeof window === 'undefined') {
return BrowserType.UNKNOWN;
}
/* global InstallTrigger */
/* global navigator */
/* global window */
if ((!!window.opr && !!opr.addons) || !!window.opera || navigator.userAgent.indexOf(' OPR/') >= 0) {
return BrowserType.OPERA;
} else if (typeof InstallTrigger !== 'undefined') {
@ -54,10 +58,14 @@ export class SystemUtils
*/
static getOS ()
{
if (typeof navigator === 'undefined') {
return OSType.UNKNOWN;
}
for (const os in OSType) {
if (Object.prototype.hasOwnProperty.call(OSType, os)) {
/** global: navigator */
if (navigator.appVersion.toLowerCase().indexOf(OSType[os]) !== -1) {
/* global navigator */
if (navigator.userAgent.toLowerCase().indexOf(OSType[os]) !== -1) {
return OSType[os];
}
}

View File

@ -201,7 +201,9 @@ export class UriFactory
*/
static build (uri, toMatch = null)
{
const current = HttpUri.parseUrl(window.location.href);
const current = typeof window === 'undefined'
? ''
: HttpUri.parseUrl(window.location.href);
const query = HttpUri.getAllUriQueryParameters(typeof current.query === 'undefined' ? {} : current.query);
for (const key in query) {
@ -270,7 +272,7 @@ export class UriFactory
} else if (match.indexOf('/') === 0) {
return 'ERROR%20PATH';
} else if (match === '%') {
return window.location.href;
return typeof window === 'undefined' ? '' : window.location.href;
} else {
return match;
}

View File

@ -6,6 +6,7 @@
"directories": {
"test": "tests"
},
"type": "module",
"dependencies": {
"chromedriver": "^122.0.6",
"eslint": "^8.12.0",
@ -24,9 +25,11 @@
},
"homepage": "https://github.com/karaka-management/jsOMS#readme",
"devDependencies": {
"esbuild": "0.19.5",
"eslint": "^8.12.0",
"eslint-plugin-import": "^2.25.4",
"jasmine": "^5.1.0",
"jasmine-node": "^3.0.0",
"jasmine-core": "^5.1.2",
"karma-jasmine": "^5.1.0",
"karma-jasmine-html-reporter": "^2.1.0"
}

View File

@ -1,12 +0,0 @@
describe('3DViewerTest', function ()
{
'use strict';
beforeEach(function ()
{
});
afterEach(function ()
{
});
});

View File

@ -1,12 +0,0 @@
describe('DdsLoaderTest', function ()
{
'use strict';
beforeEach(function ()
{
});
afterEach(function ()
{
});
});

View File

@ -1,12 +0,0 @@
describe('MtlLoaderTest', function ()
{
'use strict';
beforeEach(function ()
{
});
afterEach(function ()
{
});
});

View File

@ -1,12 +0,0 @@
describe('ObjLoaderTest', function ()
{
'use strict';
beforeEach(function ()
{
});
afterEach(function ()
{
});
});

View File

@ -1,12 +0,0 @@
describe('StlLoaderTest', function ()
{
'use strict';
beforeEach(function ()
{
});
afterEach(function ()
{
});
});

View File

@ -1,4 +1,5 @@
import { AccountManager } from '../../Account/AccountManager.js';
import { Account } from '../../Account/Account.js';
describe('AccountManagerTest', function ()
{

View File

@ -1,12 +0,0 @@
describe('AnimationTest', function ()
{
'use strict';
beforeEach(function ()
{
});
afterEach(function ()
{
});
});

View File

@ -1,12 +0,0 @@
describe('ParticleAnimationTest', function ()
{
'use strict';
beforeEach(function ()
{
});
afterEach(function ()
{
});
});

View File

@ -1,12 +0,0 @@
describe('ParticleTest', function ()
{
'use strict';
beforeEach(function ()
{
});
afterEach(function ()
{
});
});

View File

@ -18,11 +18,17 @@ describe('AssetManagerTest', function ()
{
it('Testing asset interaction functionality', function ()
{
let asset = new AssetManager(),
base = window.location.href.substr(0, window.location.href.length - 15);
let asset = new AssetManager();
let base = typeof window === 'undefined' ? '' : window.location.href.slice(0, -15);
asset.registerLoadedAssets();
if (typeof window === 'undefined') {
expect(true).toBeTrue();
return;
}
expect(asset.get(base + '../Utils/oLib.js')).not.toBe(null);
expect(asset.remove(base + '../Utils/oLib.js')).toBeTruthy();
expect(asset.load(base + '../Utils/oLib.js', 'js')).not.toBeFalsy();

View File

@ -1,12 +0,0 @@
describe('AuthTest', function ()
{
'use strict';
beforeEach(function ()
{
});
afterEach(function ()
{
});
});

View File

@ -1,12 +0,0 @@
describe('AutoloaderTest', function ()
{
'use strict';
beforeEach(function ()
{
});
afterEach(function ()
{
});
});

View File

@ -1,12 +0,0 @@
describe('CacheManagerTest', function ()
{
'use strict';
beforeEach(function ()
{
});
afterEach(function ()
{
});
});

View File

@ -8,7 +8,11 @@ describe('LocalStorageTest', function ()
{
it('Testing default functionality', function ()
{
expect(LocalStorage.available()).toBeTruthy();
if (typeof window === 'undefined') {
expect(LocalStorage.available()).toBeFalse();
} else {
expect(LocalStorage.available()).toBeTruthy();
}
});
});
});

View File

@ -1,12 +0,0 @@
describe('StorageManagerTest', function ()
{
'use strict';
beforeEach(function ()
{
});
afterEach(function ()
{
});
});

View File

@ -1,12 +0,0 @@
describe('DispatcherTest', function ()
{
'use strict';
beforeEach(function ()
{
});
afterEach(function ()
{
});
});

View File

@ -4,114 +4,105 @@ describe('LoggerTest', function ()
{
'use strict';
const isVerbose = typeof window !== 'undefined';
describe('testLocalLogging', function ()
{
it('Testing emergency functionality', function ()
{
spyOn(console, 'log');
let log = new Logger(true, false, false);
let log = new Logger(isVerbose, false, false);
spyOn(log, 'write');
log.emergency();
expect(console.log).toHaveBeenCalled();
expect(log.write).toHaveBeenCalled();
});
it('Testing alert functionality', function ()
{
spyOn(console, 'log');
let log = new Logger(true, false, false);
let log = new Logger(isVerbose, false, false);
spyOn(log, 'write');
log.alert();
expect(console.log).toHaveBeenCalled();
expect(log.write).toHaveBeenCalled();
});
it('Testing critical functionality', function ()
{
spyOn(console, 'log');
let log = new Logger(true, false, false);
let log = new Logger(isVerbose, false, false);
spyOn(log, 'write');
log.critical();
expect(console.log).toHaveBeenCalled();
expect(log.write).toHaveBeenCalled();
});
it('Testing error functionality', function ()
{
spyOn(console, 'log');
let log = new Logger(true, false, false);
let log = new Logger(isVerbose, false, false);
spyOn(log, 'write');
log.error();
expect(console.log).toHaveBeenCalled();
expect(log.write).toHaveBeenCalled();
});
it('Testing warning functionality', function ()
{
spyOn(console, 'log');
let log = new Logger(true, false, false);
let log = new Logger(isVerbose, false, false);
spyOn(log, 'write');
log.warning();
expect(console.log).toHaveBeenCalled();
expect(log.write).toHaveBeenCalled();
});
it('Testing notice functionality', function ()
{
spyOn(console, 'log');
let log = new Logger(true, false, false);
let log = new Logger(isVerbose, false, false);
spyOn(log, 'write');
log.notice();
expect(console.log).toHaveBeenCalled();
expect(log.write).toHaveBeenCalled();
});
it('Testing info functionality', function ()
{
spyOn(console, 'log');
let log = new Logger(true, false, false);
let log = new Logger(isVerbose, false, false);
spyOn(log, 'write');
log.info();
expect(console.log).toHaveBeenCalled();
expect(log.write).toHaveBeenCalled();
});
it('Testing debug functionality', function ()
{
spyOn(console, 'log');
let log = new Logger(true, false, false);
let log = new Logger(isVerbose, false, false);
spyOn(log, 'write');
log.debug();
expect(console.log).toHaveBeenCalled();
expect(log.write).toHaveBeenCalled();
});
it('Testing log functionality', function ()
{
spyOn(console, 'log');
let log = new Logger(true, false, false);
let log = new Logger(isVerbose, false, false);
spyOn(log, 'write');
log.log();
expect(console.log).toHaveBeenCalled();
expect(log.write).toHaveBeenCalled();
});
it('Testing log functionality', function ()
{
spyOn(console, 'log');
let log = new Logger(true, false, false);
let log = new Logger(isVerbose, false, false);
spyOn(log, 'write');
log.log();
expect(console.log).toHaveBeenCalled();
expect(log.write).toHaveBeenCalled();
});
it('Testing console functionality', function ()
{
let log = new Logger(isVerbose, false, false);
spyOn(console, 'log');
let log = new Logger(true, false, false);
log.console();
expect(console.log).toHaveBeenCalled();
});
@ -121,109 +112,98 @@ describe('LoggerTest', function ()
{
it('Testing emergency functionality', function ()
{
spyOn(console, 'log');
let log = new Logger(false, false, false);
spyOn(log, 'writeVerbose');
log.emergency();
expect(console.log).not.toHaveBeenCalled();
expect(log.writeVerbose).not.toHaveBeenCalled();
});
it('Testing alert functionality', function ()
{
spyOn(console, 'log');
let log = new Logger(false, false, false);
spyOn(log, 'writeVerbose');
log.alert();
expect(console.log).not.toHaveBeenCalled();
expect(log.writeVerbose).not.toHaveBeenCalled();
});
it('Testing critical functionality', function ()
{
spyOn(console, 'log');
let log = new Logger(false, false, false);
spyOn(log, 'writeVerbose');
log.critical();
expect(console.log).not.toHaveBeenCalled();
expect(log.writeVerbose).not.toHaveBeenCalled();
});
it('Testing error functionality', function ()
{
spyOn(console, 'log');
let log = new Logger(false, false, false);
spyOn(log, 'writeVerbose');
log.error();
expect(console.log).not.toHaveBeenCalled();
expect(log.writeVerbose).not.toHaveBeenCalled();
});
it('Testing warning functionality', function ()
{
spyOn(console, 'log');
let log = new Logger(false, false, false);
spyOn(log, 'writeVerbose');
log.warning();
expect(console.log).not.toHaveBeenCalled();
expect(log.writeVerbose).not.toHaveBeenCalled();
});
it('Testing notice functionality', function ()
{
spyOn(console, 'log');
let log = new Logger(false, false, false);
spyOn(log, 'writeVerbose');
log.notice();
expect(console.log).not.toHaveBeenCalled();
expect(log.writeVerbose).not.toHaveBeenCalled();
});
it('Testing info functionality', function ()
{
spyOn(console, 'log');
let log = new Logger(false, false, false);
spyOn(log, 'writeVerbose');
log.info();
expect(console.log).not.toHaveBeenCalled();
expect(log.writeVerbose).not.toHaveBeenCalled();
});
it('Testing debug functionality', function ()
{
spyOn(console, 'log');
let log = new Logger(false, false, false);
spyOn(log, 'writeVerbose');
log.debug();
expect(console.log).not.toHaveBeenCalled();
expect(log.writeVerbose).not.toHaveBeenCalled();
});
it('Testing log functionality', function ()
{
spyOn(console, 'log');
let log = new Logger(false, false, false);
spyOn(log, 'writeVerbose');
log.log();
expect(console.log).not.toHaveBeenCalled();
expect(log.writeVerbose).not.toHaveBeenCalled();
});
it('Testing log functionality', function ()
{
spyOn(console, 'log');
let log = new Logger(false, false, false);
spyOn(log, 'writeVerbose');
log.log();
expect(console.log).not.toHaveBeenCalled();
expect(log.writeVerbose).not.toHaveBeenCalled();
});
it('Testing console functionality', function ()
{
spyOn(console, 'log');
let log = new Logger(false, false, false);
spyOn(console, 'log');
log.console();
expect(console.log).toHaveBeenCalled();

View File

@ -1,3 +1,5 @@
import { MathProcessor } from '../../Math/MathProcessor.js';
describe('MathProcessorTest', function ()
{
'use strict';
@ -6,10 +8,10 @@ describe('MathProcessorTest', function ()
{
it('Testing formula evaluation', function ()
{
expect(jsOMS.mathEvaluate('3 + 4 * 2 / ( 1 - 5 ) ^ 2 ^ 3 + 1.5')).toBeCloseTo(4.5, 2);
expect(jsOMS.mathEvaluate('3+4*2/(1-5)^2^3+1.5')).toBeCloseTo(4.5, 2);
expect(jsOMS.mathEvaluate('invalid')).toBe(null);
expect(jsOMS.mathEvaluate('3+4*2/(1-5^2^3+1.5')).toBe(null);
expect(MathProcessor.mathEvaluate('3 + 4 * 2 / ( 1 - 5 ) ^ 2 ^ 3 + 1.5')).toBeCloseTo(4.5, 2);
expect(MathProcessor.mathEvaluate('3+4*2/(1-5)^2^3+1.5')).toBeCloseTo(4.5, 2);
expect(MathProcessor.mathEvaluate('invalid')).toBe(null);
expect(MathProcessor.mathEvaluate('3+4*2/(1-5^2^3+1.5')).toBe(null);
});
});
});

View File

@ -1,12 +0,0 @@
describe('UISoundTest', function ()
{
'use strict';
beforeEach(function ()
{
});
afterEach(function ()
{
});
});

View File

@ -1,12 +0,0 @@
describe('CameraRecognitionTest', function ()
{
'use strict';
beforeEach(function ()
{
});
afterEach(function ()
{
});
}

View File

@ -8,7 +8,7 @@ describe('NotificationLevelTest', function ()
{
it('Testing amount of enums', function ()
{
expect(Object.keys(NotificationLevel).length).toBe(4);
expect(Object.keys(NotificationLevel).length).toBe(5);
});
it('Testing values of enums', function ()

View File

@ -1,4 +1,6 @@
import { NotificationManager } from '../../../Message/Notification/NotificationManager.js';
import { AppNotification } from '../../../Message/Notification/App/AppNotification.js';
import { BrowserNotification } from '../../../Message/Notification/Browser/BrowserNotification.js';
describe('NotificationManagerTest', function ()
{
@ -10,8 +12,8 @@ describe('NotificationManagerTest', function ()
{
let manager = new NotificationManager();
expect(manager.getAppNotifier()).toEqual(jasmine.any(App.AppNotification));
expect(manager.getBrowserNotifier()).toEqual(jasmine.any(Browser.BrowserNotification));
expect(manager.getAppNotifier()).toEqual(jasmine.any(AppNotification));
expect(manager.getBrowserNotifier()).toEqual(jasmine.any(BrowserNotification));
});
});
});

View File

@ -1,13 +0,0 @@
describe('RequestTest', function ()
{
'use strict';
beforeEach(function ()
{
});
afterEach(function ()
{
});
});

View File

@ -8,7 +8,7 @@ describe('RequestTypeTest', function ()
{
it('Testing amount of enums', function ()
{
expect(Object.keys(RequestType).length).toBe(4);
expect(Object.keys(RequestType).length).toBe(5);
});
it('Testing values of enums', function ()

View File

@ -1,12 +0,0 @@
describe('ResponseManagerTest', function ()
{
'use strict';
beforeEach(function ()
{
});
afterEach(function ()
{
});
});

View File

@ -1,12 +0,0 @@
describe('ResponseTest', function ()
{
'use strict';
beforeEach(function ()
{
});
afterEach(function ()
{
});
});

View File

@ -1,12 +0,0 @@
describe('ModuleFactoryTest', function ()
{
'use strict';
beforeEach(function ()
{
});
afterEach(function ()
{
});
});

View File

@ -1,12 +0,0 @@
describe('ModuleManagerTest', function ()
{
'use strict';
beforeEach(function ()
{
});
afterEach(function ()
{
});
});

View File

@ -1,12 +0,0 @@
describe('RouteTest', function ()
{
'use strict';
beforeEach(function ()
{
});
afterEach(function ()
{
});
});

View File

@ -1,12 +0,0 @@
describe('Sha1Test', function ()
{
'use strict';
beforeEach(function ()
{
});
afterEach(function ()
{
});
});

View File

@ -1,12 +0,0 @@
describe('Sha1bTest', function ()
{
'use strict';
beforeEach(function ()
{
});
afterEach(function ()
{
});
});

View File

@ -1,12 +0,0 @@
describe('ClientTest', function ()
{
'use strict';
beforeEach(function ()
{
});
afterEach(function ()
{
});
});

View File

@ -1,12 +0,0 @@
describe('CellTest', function ()
{
'use strict';
beforeEach(function ()
{
});
afterEach(function ()
{
});
});

View File

@ -1,12 +0,0 @@
describe('FormattingTest', function ()
{
'use strict';
beforeEach(function ()
{
});
afterEach(function ()
{
});
});

View File

@ -1,12 +0,0 @@
describe('FunctionsTest', function ()
{
'use strict';
beforeEach(function ()
{
});
afterEach(function ()
{
});
});

View File

@ -1,12 +0,0 @@
describe('SheetTest', function ()
{
'use strict';
beforeEach(function ()
{
});
afterEach(function ()
{
});
});

View File

@ -1,12 +0,0 @@
describe('SpreadsheetTest', function ()
{
'use strict';
beforeEach(function ()
{
});
afterEach(function ()
{
});
});

View File

@ -1,12 +0,0 @@
describe('ActionManagerTest', function ()
{
'use strict';
beforeEach(function ()
{
});
afterEach(function ()
{
});
});

View File

@ -1,12 +0,0 @@
describe('AutocompleteTest', function ()
{
'use strict';
beforeEach(function ()
{
});
afterEach(function ()
{
});
});

View File

@ -1,12 +0,0 @@
describe('FormTest', function ()
{
'use strict';
beforeEach(function ()
{
});
afterEach(function ()
{
});
});

View File

@ -1,12 +0,0 @@
describe('InputTest', function ()
{
'use strict';
beforeEach(function ()
{
});
afterEach(function ()
{
});
});

View File

@ -1,12 +0,0 @@
describe('TabTest', function ()
{
'use strict';
beforeEach(function ()
{
});
afterEach(function ()
{
});
});

View File

@ -1,12 +0,0 @@
describe('TableTest', function ()
{
'use strict';
beforeEach(function ()
{
});
afterEach(function ()
{
});
});

View File

@ -1,12 +0,0 @@
describe('TagInputTest', function ()
{
'use strict';
beforeEach(function ()
{
});
afterEach(function ()
{
});
});

View File

@ -1,12 +0,0 @@
describe('TagListTest', function ()
{
'use strict';
beforeEach(function ()
{
});
afterEach(function ()
{
});
});

View File

@ -1,12 +0,0 @@
describe('DragNDropTest', function ()
{
'use strict';
beforeEach(function ()
{
});
afterEach(function ()
{
});
});

View File

@ -1,12 +0,0 @@
describe('GeneralUITest', function ()
{
'use strict';
beforeEach(function ()
{
});
afterEach(function ()
{
});
});

View File

@ -1,12 +0,0 @@
describe('InputManagerTest', function ()
{
'use strict';
beforeEach(function ()
{
});
afterEach(function ()
{
});
});

View File

@ -1,12 +0,0 @@
describe('KeyboardManagerTest', function ()
{
'use strict';
beforeEach(function ()
{
});
afterEach(function ()
{
});
});

View File

@ -1,12 +0,0 @@
describe('EvaluatorTest', function ()
{
"use strict";
beforeEach(function ()
{
});
afterEach(function ()
{
});
});

View File

@ -1,12 +0,0 @@
describe('MouseManagerTest', function ()
{
'use strict';
beforeEach(function ()
{
});
afterEach(function ()
{
});
});

View File

@ -1,12 +0,0 @@
describe('TouchManagerTest', function ()
{
'use strict';
beforeEach(function ()
{
});
afterEach(function ()
{
});
});

View File

@ -1,12 +0,0 @@
describe('ReadManagerTest', function ()
{
'use strict';
beforeEach(function ()
{
});
afterEach(function ()
{
});
}

View File

@ -1,12 +0,0 @@
describe('SpeechManagerTest', function ()
{
'use strict';
beforeEach(function ()
{
});
afterEach(function ()
{
});
}

View File

@ -1,12 +0,0 @@
describe('VoiceManagerTest', function ()
{
'use strict';
beforeEach(function ()
{
});
afterEach(function ()
{
});
}

View File

@ -1,12 +0,0 @@
describe('LoaderTest', function ()
{
'use strict';
beforeEach(function ()
{
});
afterEach(function ()
{
});
});

View File

@ -1,12 +0,0 @@
describe('UIManagerTest', function ()
{
'use strict';
beforeEach(function ()
{
});
afterEach(function ()
{
});
});

View File

@ -1,12 +0,0 @@
describe('UnhandledExceptionTest', function ()
{
'use strict';
beforeEach(function ()
{
});
afterEach(function ()
{
});
});

View File

@ -4,6 +4,10 @@ describe('UriFactoryTest', function ()
{
'use strict';
if (typeof window === 'undefined') {
var window = { location: {} };
}
describe('testDefault', function ()
{
it('Testing default functionality', function ()

View File

@ -1,12 +0,0 @@
describe('oLibTest', function ()
{
'use strict';
beforeEach(function ()
{
});
afterEach(function ()
{
});
});

View File

@ -1,8 +1,19 @@
import { jsOMS } from '../../Utils/oLib.js';
describe('FormViewTest', function ()
{
'use strict';
var testId = 'testForm';
it('Testing environment', function ()
{
expect(true).toBeTrue();
});
if (typeof document === 'undefined') {
return;
}
beforeEach(function ()
{
document.body.innerHTML += `

View File

@ -1,12 +0,0 @@
describe('TableViewTest', function ()
{
'use strict';
beforeEach(function ()
{
});
afterEach(function ()
{
});
});