49 lines
1.6 KiB
TypeScript
49 lines
1.6 KiB
TypeScript
import { describe, expect, it } from 'vitest'
|
|
|
|
import { Long, tl } from '@mtcute/core'
|
|
|
|
import { encodeInlineMessageId, normalizeInlineId, parseInlineMessageId } from './inline-utils.js'
|
|
|
|
describe('inline message id', () => {
|
|
it('should encode and decode legacy inline message id', () => {
|
|
const id: tl.RawInputBotInlineMessageID = {
|
|
_: 'inputBotInlineMessageID',
|
|
dcId: 1,
|
|
id: Long.fromBits(123, 456),
|
|
accessHash: Long.fromBits(789, 999),
|
|
}
|
|
const encoded = encodeInlineMessageId(id)
|
|
const parsed = parseInlineMessageId(encoded)
|
|
|
|
expect(encoded).toEqual('AQAAAHsAAADIAQAAFQMAAOcDAAA')
|
|
expect(parsed).toEqual(id)
|
|
})
|
|
|
|
it('should encode and decode 64-bit inline message id', () => {
|
|
const id: tl.RawInputBotInlineMessageID64 = {
|
|
_: 'inputBotInlineMessageID64',
|
|
dcId: 1,
|
|
ownerId: Long.fromBits(123, 456),
|
|
id: 666,
|
|
accessHash: Long.fromBits(789, 999),
|
|
}
|
|
const encoded = encodeInlineMessageId(id)
|
|
const parsed = parseInlineMessageId(encoded)
|
|
|
|
expect(encoded).toEqual('AQAAAHsAAADIAQAAmgIAABUDAADnAwAA')
|
|
expect(parsed).toEqual(id)
|
|
})
|
|
|
|
it('should normalize to tl object', () => {
|
|
const id: tl.RawInputBotInlineMessageID64 = {
|
|
_: 'inputBotInlineMessageID64',
|
|
dcId: 1,
|
|
ownerId: Long.fromBits(123, 456),
|
|
id: 666,
|
|
accessHash: Long.fromBits(789, 999),
|
|
}
|
|
|
|
expect(normalizeInlineId('AQAAAHsAAADIAQAAmgIAABUDAADnAwAA')).toEqual(id)
|
|
expect(normalizeInlineId(id)).toBe(id)
|
|
})
|
|
})
|