UNPKG

@cutls/megalodon

Version:

Mastodon, Pleroma, Misskey API client for node.js and browser

146 lines (145 loc) 3.49 kB
Object.defineProperty(exports, '__esModule', { value: true }) var parser_1 = require('@/parser') var account = { id: '1', username: 'h3poteto', acct: 'h3poteto@pleroma.io', display_name: 'h3poteto', locked: false, group: false, noindex: null, suspended: null, limited: null, created_at: '2019-03-26T21:30:32', followers_count: 10, following_count: 10, statuses_count: 100, note: 'engineer', url: 'https://pleroma.io', avatar: '', avatar_static: '', header: '', header_static: '', emojis: [], moved: null, fields: [], bot: false } var status = { id: '1', uri: 'http://example.com', url: 'http://example.com', account: account, in_reply_to_id: null, in_reply_to_account_id: null, reblog: null, content: 'hoge', plain_content: 'hoge', created_at: '2019-03-26T21:40:32', edited_at: null, emojis: [], replies_count: 0, reblogs_count: 0, favourites_count: 0, reblogged: null, favourited: null, muted: null, sensitive: false, spoiler_text: '', visibility: 'public', media_attachments: [], mentions: [], tags: [], card: null, poll: null, application: { name: 'Web' }, language: null, pinned: null, emoji_reactions: [], bookmarked: false, quote: null } var notification = { id: '1', account: account, status: status, type: 'favourite', created_at: '2019-04-01T17:01:32' } var conversation = { id: '1', accounts: [account], last_status: status, unread: true } describe('Parser', () => { var parser beforeEach(() => { parser = new parser_1.Parser() }) describe('parse', () => { describe('message is heartbeat', () => { var message = ':thump\n' it('should be called', () => { var spy = jest.fn() parser.on('heartbeat', spy) parser.parse(message) expect(spy).toHaveBeenLastCalledWith({}) }) }) describe('message is not json', () => { describe('event is delete', () => { var message = 'event: delete\ndata: 12asdf34\n\n' it('should be called', () => { var spy = jest.fn() parser.once('delete', spy) parser.parse(message) expect(spy).toHaveBeenCalledWith('12asdf34') }) }) describe('event is not delete', () => { var message = 'event: event\ndata: 12asdf34\n\n' it('should be error', () => { var error = jest.fn() var deleted = jest.fn() parser.once('error', error) parser.once('delete', deleted) parser.parse(message) expect(error).toHaveBeenCalled() expect(deleted).not.toHaveBeenCalled() }) }) }) describe('message is json', () => { describe('event is update', () => { var message = 'event: update\ndata: '.concat(JSON.stringify(status), '\n\n') it('should be called', () => { var spy = jest.fn() parser.once('update', spy) parser.parse(message) expect(spy).toHaveBeenCalledWith(status) }) }) describe('event is notification', () => { var message = 'event: notification\ndata: '.concat(JSON.stringify(notification), '\n\n') it('should be called', () => { var spy = jest.fn() parser.once('notification', spy) parser.parse(message) expect(spy).toHaveBeenCalledWith(notification) }) }) describe('event is conversation', () => { var message = 'event: conversation\ndata: '.concat(JSON.stringify(conversation), '\n\n') it('should be called', () => { var spy = jest.fn() parser.once('conversation', spy) parser.parse(message) expect(spy).toHaveBeenCalledWith(conversation) }) }) }) }) })