/* eslint-disable sort-keys */

import { test } from 'tstest'
import { parserContactRawPayload } from './contact-raw-payload-parser.js'
import * as PUPPET from '@juzi/wechaty-puppet'

test('parse self contact info', async t => {
  const selfContactInfo = {
    id: {
      server: 'c.us',
      user: '8613812345678',
      _serialized: '8613812345678@c.us',
    },
    number: '8613812345678',
    type: 'in',
    isMe: true,
    isUser: true,
    isGroup: false,
    isWAContact: true,
    isMyContact: false,
    isBlocked: false,
    avatar: 'https://pps.whatsapp.net/v/t61.24694-24/260815595_1420796841651457_5795692773524767952_n.jpg?ccb=11-4&oh=01_AVzaQSF48-MYxwWUL9qX9i4f1tBjIvIX1h5xnwS3THYPkA&oe=6222761E',
  }

  const result = parserContactRawPayload(selfContactInfo as any, 'testUserName')
  console.info(result)
  t.ok(result.name === 'testUserName', 'should get correct contact name')
  t.ok(result.type === PUPPET.types.Contact.Individual, 'should get correct contact type')
  t.ok(result.phone[0] === '8613812345678', 'should get correct phone number')
  t.ok(result.id === '8613812345678@c.us', 'should get correct user id')
  t.ok(result.friend, 'should get correct friendship status')

  t.pass('parse self contact info pass')
})

test('parse individual contact info', async t => {
  const contactInfo = {
    id: {
      server: 'c.us',
      user: '918879481247',
      _serialized: '918879481247@c.us',
    },
    number: '918879481247',
    isBusiness: false,
    isEnterprise: false,
    labels: [],
    pushname: 'Prince Arora',
    statusMute: false,
    type: 'in',
    isMe: false,
    isUser: true,
    isGroup: false,
    isWAContact: true,
    isMyContact: true,
    isBlocked: false,
  }

  const result = parserContactRawPayload(contactInfo as any, 'testUserName')
  console.info(result)
  t.ok(result.name === 'Prince Arora', 'should get correct contact name')
  t.ok(result.type === PUPPET.types.Contact.Individual, 'should get correct contact type')
  t.ok(result.phone[0] === '918879481247', 'should get correct phone number')
  t.ok(result.id === '918879481247@c.us', 'should get correct user id')
  t.ok(result.friend, 'should get correct friendship status')

  t.pass('parse individual contact info pass')
})
