mtcute/packages/client/src/utils/inline-utils.test.ts

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)
})
})