Files
sfera-new/test-api-key-save.js
Veronika Smirnova d19530a985 debug: добавить скрипты отладки и бэкапы для диагностики проблем
- api_keys_backup_1758196936364.json - резервная копия API ключей
- check-active-key.js - проверка активного API ключа
- check-all-keys.js - проверка всех API ключей в системе
- check-new-seller.js - проверка нового селлера
- test-api-key-save.js - тестирование сохранения API ключей
- test-graphql-stats.js - тестирование GraphQL статистики
- test-resolver-direct.js - прямое тестирование резолверов
- test-sidebar.html - тестирование сайдбара
- test-statistics-direct.js - прямое тестирование статистики

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-18 21:32:23 +03:00

118 lines
4.0 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { PrismaClient } from '@prisma/client'
const prisma = new PrismaClient()
async function testApiKeySave() {
try {
console.log('🔍 ТЕСТ СОХРАНЕНИЯ API КЛЮЧА')
// Найдем организацию Rennel
const org = await prisma.organization.findFirst({
where: { name: 'Rennel', type: 'SELLER' },
include: {
apiKeys: {
where: { marketplace: 'WILDBERRIES' },
orderBy: { createdAt: 'desc' },
},
},
})
if (!org) {
console.log('❌ Организация Rennel не найдена')
return
}
console.log('\n📊 СОСТОЯНИЕ ДО ТЕСТА:')
console.log('- Организация:', org.name)
console.log('- Всего WB ключей:', org.apiKeys.length)
if (org.apiKeys.length > 0) {
const currentKey = org.apiKeys[0]
console.log('- Текущий ключ ID:', currentKey.id)
console.log('- Длина:', currentKey.apiKey?.length)
console.log('- Тип:', currentKey.apiKey?.startsWith('eyJ') ? 'JWT' : 'Тестовый')
}
// Тестовый валидный JWT ключ (более короткий для теста)
const testJwtKey =
'eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJodHRwczovL2FjY291bnQud2lsZGJlcnJpZXMucnUiLCJzdWIiOjEyMzQ1Njc4OTAsImV4cCI6MTcyNjY3MjgwMCwidXNlclR5cGUiOiJzZWxsZXIiLCJzY29wZSI6WyJhZHZlcnRpc2luZyIsInN0YXRpc3RpY3MiLCJvcmRlcnMiXX0.test_signature_here'
console.log('\n🔄 ИМИТАЦИЯ ОБНОВЛЕНИЯ КЛЮЧА...')
// Имитируем обновление через API (как делает мутация)
const existingKey = await prisma.apiKey.findUnique({
where: {
organizationId_marketplace: {
organizationId: org.id,
marketplace: 'WILDBERRIES',
},
},
})
if (existingKey) {
console.log('- Найден существующий ключ:', existingKey.id)
// Обновляем как в мутации
const updated = await prisma.apiKey.update({
where: {
organizationId_marketplace: {
organizationId: org.id,
marketplace: 'WILDBERRIES',
},
},
data: {
apiKey: testJwtKey,
isActive: true,
validationData: { validatedAt: new Date().toISOString() },
},
})
console.log('✅ Ключ обновлен:', updated.id)
console.log('- Новая длина:', updated.apiKey?.length)
console.log('- Новый тип:', updated.apiKey?.startsWith('eyJ') ? 'JWT' : 'Тестовый')
} else {
console.log('- Существующий ключ не найден, создаем новый')
const created = await prisma.apiKey.create({
data: {
organizationId: org.id,
marketplace: 'WILDBERRIES',
apiKey: testJwtKey,
isActive: true,
validationData: { validatedAt: new Date().toISOString() },
},
})
console.log('✅ Новый ключ создан:', created.id)
}
// Проверим результат
console.log('\n📊 СОСТОЯНИЕ ПОСЛЕ ТЕСТА:')
const updatedOrg = await prisma.organization.findFirst({
where: { name: 'Rennel', type: 'SELLER' },
include: {
apiKeys: {
where: { marketplace: 'WILDBERRIES' },
orderBy: { createdAt: 'desc' },
},
},
})
if (updatedOrg && updatedOrg.apiKeys.length > 0) {
const newKey = updatedOrg.apiKeys[0]
console.log('- Ключ ID:', newKey.id)
console.log('- Длина:', newKey.apiKey?.length)
console.log('- Тип:', newKey.apiKey?.startsWith('eyJ') ? 'JWT' : 'Тестовый')
console.log('- Активен:', newKey.isActive)
console.log('- Обновлен:', newKey.updatedAt.toISOString())
}
console.log('\n🎯 ТЕСТ ЗАВЕРШЕН')
} catch (error) {
console.error('❌ ОШИБКА ТЕСТА:', error)
} finally {
await prisma.$disconnect()
}
}
testApiKeySave()