Files
hive/frontend/node_modules/bs-logger/dist/testing/target-mock.js
anthonyrawlins aacb45156b Set up comprehensive frontend testing infrastructure
- Install Jest for unit testing with React Testing Library
- Install Playwright for end-to-end testing
- Configure Jest with proper TypeScript support and module mapping
- Create test setup files and utilities for both unit and e2e tests

Components:
* Jest configuration with coverage thresholds
* Playwright configuration with browser automation
* Unit tests for LoginForm, AuthContext, and useSocketIO hook
* E2E tests for authentication, dashboard, and agents workflows
* GitHub Actions workflow for automated testing
* Mock data and API utilities for consistent testing
* Test documentation with best practices

Testing features:
- Unit tests with 70% coverage threshold
- E2E tests with API mocking and user journey testing
- CI/CD integration for automated test runs
- Cross-browser testing support with Playwright
- Authentication system testing end-to-end

🚀 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-11 14:06:34 +10:00

90 lines
3.9 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var context_1 = require("../logger/context");
var level_1 = require("../logger/level");
var extendArray = function (array) {
return Object.defineProperty(array, 'last', {
configurable: true,
get: function () {
return this[this.length - 1];
},
});
};
exports.extendArray = extendArray;
var LogTargetMock = (function () {
function LogTargetMock(minLevel) {
if (minLevel === void 0) { minLevel = -Infinity; }
var _this = this;
this.minLevel = minLevel;
this.messages = Object.defineProperties(extendArray([]), {
trace: { get: function () { return _this.filteredMessages(level_1.LogLevels.trace); } },
debug: { get: function () { return _this.filteredMessages(level_1.LogLevels.debug); } },
info: { get: function () { return _this.filteredMessages(level_1.LogLevels.info); } },
warn: { get: function () { return _this.filteredMessages(level_1.LogLevels.warn); } },
error: { get: function () { return _this.filteredMessages(level_1.LogLevels.error); } },
fatal: { get: function () { return _this.filteredMessages(level_1.LogLevels.fatal); } },
});
this.lines = Object.defineProperties(extendArray([]), {
trace: { get: function () { return _this.filteredLines(level_1.LogLevels.trace); } },
debug: { get: function () { return _this.filteredLines(level_1.LogLevels.debug); } },
info: { get: function () { return _this.filteredLines(level_1.LogLevels.info); } },
warn: { get: function () { return _this.filteredLines(level_1.LogLevels.warn); } },
error: { get: function () { return _this.filteredLines(level_1.LogLevels.error); } },
fatal: { get: function () { return _this.filteredLines(level_1.LogLevels.fatal); } },
});
this.stream = {
write: function (msg) { return !!_this.lines.push(msg); },
};
}
LogTargetMock.prototype.format = function (msg) {
this.messages.push(msg);
var lvl = msg.context[context_1.LogContexts.logLevel];
if (lvl != null) {
return "[level:" + lvl + "] " + msg.message;
}
return msg.message;
};
LogTargetMock.prototype.clear = function () {
this.messages.splice(0, this.messages.length);
this.lines.splice(0, this.lines.length);
};
LogTargetMock.prototype.filteredMessages = function (level, untilLevel) {
var filter;
if (level == null) {
filter = function (m) { return m.context[context_1.LogContexts.logLevel] == null; };
}
else if (untilLevel != null) {
filter = function (m) {
var lvl = m.context[context_1.LogContexts.logLevel];
return lvl != null && lvl >= level && lvl <= untilLevel;
};
}
else {
filter = function (m) { return m.context[context_1.LogContexts.logLevel] === level; };
}
return extendArray(this.messages.filter(filter));
};
LogTargetMock.prototype.filteredLines = function (level, untilLevel) {
var extractLevel = function (line) {
var level = (line.match(/^\[level:([0-9]+)\] /) || [])[1];
return level == null ? undefined : parseInt(level, 10);
};
var filter;
if (level == null) {
filter = function (line) { return extractLevel(line) === undefined; };
}
else if (untilLevel != null) {
filter = function (line) {
var lvl = extractLevel(line);
return lvl != null && lvl >= level && lvl <= untilLevel;
};
}
else {
filter = function (line) { return extractLevel(line) === level; };
}
return extendArray(this.lines.filter(filter));
};
return LogTargetMock;
}());
exports.LogTargetMock = LogTargetMock;