Fix tests

This commit is contained in:
pythongosssss 2023-12-03 13:44:49 +00:00
parent 2aec927587
commit 64e3c2bcff
6 changed files with 60 additions and 5 deletions

View File

@ -1,3 +1,4 @@
{
"presets": ["@babel/preset-env"]
"presets": ["@babel/preset-env"],
"plugins": ["babel-plugin-transform-import-meta"]
}

View File

@ -11,6 +11,7 @@
"devDependencies": {
"@babel/preset-env": "^7.22.20",
"@types/jest": "^29.5.5",
"babel-plugin-transform-import-meta": "^2.2.1",
"jest": "^29.7.0",
"jest-environment-jsdom": "^29.7.0"
}
@ -2591,6 +2592,19 @@
"@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
}
},
"node_modules/babel-plugin-transform-import-meta": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-import-meta/-/babel-plugin-transform-import-meta-2.2.1.tgz",
"integrity": "sha512-AxNh27Pcg8Kt112RGa3Vod2QS2YXKKJ6+nSvRtv7qQTJAdx0MZa4UHZ4lnxHUWA2MNbLuZQv5FVab4P1CoLOWw==",
"dev": true,
"dependencies": {
"@babel/template": "^7.4.4",
"tslib": "^2.4.0"
},
"peerDependencies": {
"@babel/core": "^7.10.0"
}
},
"node_modules/babel-preset-current-node-syntax": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz",
@ -5233,6 +5247,12 @@
"node": ">=12"
}
},
"node_modules/tslib": {
"version": "2.6.2",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
"integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==",
"dev": true
},
"node_modules/type-detect": {
"version": "4.0.8",
"resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",

View File

@ -24,6 +24,7 @@
"devDependencies": {
"@babel/preset-env": "^7.22.20",
"@types/jest": "^29.5.5",
"babel-plugin-transform-import-meta": "^2.2.1",
"jest": "^29.7.0",
"jest-environment-jsdom": "^29.7.0"
}

View File

@ -18,9 +18,16 @@ function* walkSync(dir) {
*/
/**
* @param { { mockExtensions?: string[], mockNodeDefs?: Record<string, ComfyObjectInfo> } } config
* @param {
* {
* mockExtensions?: string[],
* mockNodeDefs?: Record<string, ComfyObjectInfo>,
* users?: boolean | Record<string, string>
* settings?: Record<string, string>
* userData?: Record<string, any>
* } } config
*/
export function mockApi({ mockExtensions, mockNodeDefs } = {}) {
export function mockApi({ mockExtensions, mockNodeDefs, users, settings, userData } = {}) {
if (!mockExtensions) {
mockExtensions = Array.from(walkSync(path.resolve("../web/extensions/core")))
.filter((x) => x.endsWith(".js"))
@ -29,7 +36,16 @@ export function mockApi({ mockExtensions, mockNodeDefs } = {}) {
if (!mockNodeDefs) {
mockNodeDefs = JSON.parse(fs.readFileSync(path.resolve("./data/object_info.json")));
}
if(!users) {
users = true;
}
if(!settings) {
settings = {};
}
if(!userData) {
userData = {};
}
const events = new EventTarget();
const mockApi = {
addEventListener: events.addEventListener.bind(events),
@ -40,6 +56,15 @@ export function mockApi({ mockExtensions, mockNodeDefs } = {}) {
getNodeDefs: jest.fn(() => mockNodeDefs),
init: jest.fn(),
apiURL: jest.fn((x) => "../../web/" + x),
getUsers: jest.fn(() => users),
getSettings: jest.fn(() => settings ?? {}),
getUserData: jest.fn(f => {
if(f in userData) {
return { status: 200, json: () => userData[f] };
} else {
return { status: 404 }
}
})
};
jest.mock("../../web/scripts/api", () => ({
get api() {

View File

@ -323,6 +323,14 @@ class ComfyApi extends EventTarget {
await this.#postItem("interrupt", null);
}
/**
* Gets all setting values for the current user
* @returns { Promise<string, unknown> } A dictionary of id -> value
*/
async getUsers() {
return (await this.fetchApi("/users")).json();
}
/**
* Gets all setting values for the current user
* @returns { Promise<string, unknown> } A dictionary of id -> value

View File

@ -1304,7 +1304,7 @@ export class ComfyApp {
}
async #setUser() {
const users = await (await api.fetchApi("users")).json();
const users = await api.getUsers();
if(typeof users === "boolean") {
// Single user mode returns true/false for if the default user is created
if(!users) {