refactor: unify credential check bindings
This commit is contained in:
@@ -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 = [];
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user