validate Telegram bot token in production
This commit is contained in:
@@ -4,13 +4,27 @@ import {mkdtempSync,rmSync} from 'node:fs';
|
||||
import {join} from 'node:path';
|
||||
import {tmpdir} from 'node:os';
|
||||
import {createTelegramLinker} from '../server/telegram-link.mjs';
|
||||
import {kodIleBagla} from '../server/telegram.mjs';
|
||||
import {kodIleBagla,telegramConfigured} from '../server/telegram.mjs';
|
||||
const directory=mkdtempSync(join(tmpdir(),'telegram-link-'));
|
||||
process.env.IHALEIST_USER_DATA_DIR=directory;
|
||||
const store=await import('../server/user-store.mjs');
|
||||
after(()=>rmSync(directory,{recursive:true,force:true}));
|
||||
const found={chatId:'123',ad:'Test'};
|
||||
|
||||
test('production rejects malformed Telegram bot token values',()=>{
|
||||
const oldNode=process.env.NODE_ENV,oldToken=process.env.TELEGRAM_BOT_TOKEN;
|
||||
process.env.NODE_ENV='production';
|
||||
try {
|
||||
process.env.TELEGRAM_BOT_TOKEN='synthetic-token';
|
||||
assert.equal(telegramConfigured(),false);
|
||||
process.env.TELEGRAM_BOT_TOKEN='123456:abcdefghijklmnopqrstuvwxyz';
|
||||
assert.equal(telegramConfigured(),true);
|
||||
} finally {
|
||||
if(oldNode===undefined)delete process.env.NODE_ENV;else process.env.NODE_ENV=oldNode;
|
||||
if(oldToken===undefined)delete process.env.TELEGRAM_BOT_TOKEN;else process.env.TELEGRAM_BOT_TOKEN=oldToken;
|
||||
}
|
||||
});
|
||||
|
||||
test('server challenge belongs to its account, expires, rotates and is consumed once',async()=>{
|
||||
let time=1000000;const linker=createTelegramLinker(store,()=>time),email='link@example.test';
|
||||
const first=linker.issue(email);assert.match(first.kod,/^[a-f0-9]{48}$/);
|
||||
|
||||
Reference in New Issue
Block a user