La pantalla lo ofrecía y las rutas de /api/v2/vcard lo exigen, pero la lista de scopes válidos del backend nunca lo incluyó: crear la llave devolvía "scope inválido: vcard" y la integración de vCard no tenía forma de autenticarse. La lista estaba escrita dos veces —una en Go y otra en el HTML— y se desincronizaron. Ahora la vista la pide al backend, así que no puede volver a ofrecer algo que el backend rechace, y un test fija que todo scope exigido por las rutas se pueda asignar. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
17 lines
623 B
Go
17 lines
623 B
Go
package controllers
|
|
|
|
import "testing"
|
|
|
|
// La pantalla ofrecía "vcard" mientras el backend lo rechazaba al guardar, y el
|
|
// único síntoma era "scope inválido: vcard" al crear la llave. Los scopes que
|
|
// las rutas de /api/v2 exigen con RequireScope tienen que poder asignarse.
|
|
func TestScopesDeLasRutasSonAsignables(t *testing.T) {
|
|
// Sacados de los RequireScope() de rest/routes.
|
|
usadosEnRutas := []string{"oss", "query_runner", "usuarios", "pasarelas", "vcard"}
|
|
for _, s := range usadosEnRutas {
|
|
if !scopesValidos[s] {
|
|
t.Errorf("las rutas exigen el scope %q pero no se puede asignar a una API key", s)
|
|
}
|
|
}
|
|
}
|