refactor: unify credential check bindings

This commit is contained in:
Dariusz L
2026-08-05 13:35:08 +02:00
parent 22f294bc22
commit a695a4103a
2 changed files with 55 additions and 49 deletions
@@ -4703,6 +4703,22 @@ test('automatic opening remains conditional on unresolved models', () => {
assert.match(optionsMethodsSource, /auto_open_on_missing: Boolean\(autoOpenOnMissingInput\?\.checked\)/);
});
test('options credential checks preserve every endpoint contract', () => {
const contracts = [
['/model_resolver/civitai/session-token/check', 'civitai_session_token', 'Paste token first'],
['/model_resolver/civitai/api-key/check', 'civitai_key', 'Paste API key first'],
['/model_resolver/huggingface/token/check', 'hf_token', 'Paste token first'],
['/model_resolver/brave/api-key/check', 'brave_search_api_key', 'Paste API key first']
];
assert.match(optionsMethodsSource, /const checkCredential = async/);
contracts.forEach(([endpoint, payloadKey, missingText]) => {
assert.match(optionsMethodsSource, new RegExp(`endpoint: '${endpoint}'`));
assert.match(optionsMethodsSource, new RegExp(`payloadKey: '${payloadKey}'`));
assert.match(optionsMethodsSource, new RegExp(`missingText: '${missingText}'`));
});
});
test('automatic opening preserves the current resolver display mode', () => {
const openResolverForDetectedMissingModels = eval(`(${extractMethod(modelResolverSource, 'openResolverForDetectedMissingModels')})`);
const refreshReasons = [];
+39 -49
View File
@@ -3401,57 +3401,47 @@ export const optionsMethods = {
checkAria2Status({ useUnsavedPath: false });
}
if (civitaiSessionCheckBtn) {
civitaiSessionCheckBtn.addEventListener('click', () => {
checkCredential({
input: civitaiSessionInput,
button: civitaiSessionCheckBtn,
statusEl: civitaiSessionCheckStatus,
endpoint: '/model_resolver/civitai/session-token/check',
payloadKey: 'civitai_session_token',
missingText: 'Paste token first'
});
});
}
const credentialChecks = [
{
input: civitaiSessionInput,
button: civitaiSessionCheckBtn,
statusEl: civitaiSessionCheckStatus,
endpoint: '/model_resolver/civitai/session-token/check',
payloadKey: 'civitai_session_token',
missingText: 'Paste token first'
},
{
input: civitaiInput,
button: civitaiKeyCheckBtn,
statusEl: civitaiKeyCheckStatus,
endpoint: '/model_resolver/civitai/api-key/check',
payloadKey: 'civitai_key',
missingText: 'Paste API key first'
},
{
input: hfInput,
button: hfTokenCheckBtn,
statusEl: hfTokenCheckStatus,
endpoint: '/model_resolver/huggingface/token/check',
payloadKey: 'hf_token',
missingText: 'Paste token first'
},
{
input: braveInput,
button: braveKeyCheckBtn,
statusEl: braveKeyCheckStatus,
endpoint: '/model_resolver/brave/api-key/check',
payloadKey: 'brave_search_api_key',
missingText: 'Paste API key first'
}
];
if (civitaiKeyCheckBtn) {
civitaiKeyCheckBtn.addEventListener('click', () => {
checkCredential({
input: civitaiInput,
button: civitaiKeyCheckBtn,
statusEl: civitaiKeyCheckStatus,
endpoint: '/model_resolver/civitai/api-key/check',
payloadKey: 'civitai_key',
missingText: 'Paste API key first'
});
credentialChecks.forEach((config) => {
if (!config.button) return;
config.button.addEventListener('click', () => {
checkCredential(config);
});
}
if (hfTokenCheckBtn) {
hfTokenCheckBtn.addEventListener('click', () => {
checkCredential({
input: hfInput,
button: hfTokenCheckBtn,
statusEl: hfTokenCheckStatus,
endpoint: '/model_resolver/huggingface/token/check',
payloadKey: 'hf_token',
missingText: 'Paste token first'
});
});
}
if (braveKeyCheckBtn) {
braveKeyCheckBtn.addEventListener('click', () => {
checkCredential({
input: braveInput,
button: braveKeyCheckBtn,
statusEl: braveKeyCheckStatus,
endpoint: '/model_resolver/brave/api-key/check',
payloadKey: 'brave_search_api_key',
missingText: 'Paste API key first'
});
});
}
});
loadModelListStatus(false);
loadBaseModelsStatus(false);