wuhaohao1234 / input-key-ctrl

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

input-key-ctrl

// @ts-nocheck
/**
 * 键盘上有5个键位置,分别是:a, ctrl, c, v, x
 * 
 * 输入a 1 如果是选中的,则直接赋值,如果没有选中,则添加,添加后,选中状态为false
 * 
 * ctrl + c 复制: 将选中内容复制到剪贴板 2
 * 
 * ctrl + v 粘贴: 将剪贴板内容粘贴到输入框 (如果当前有选中,
 *  则会将选中替换为剪贴板内容) 粘贴后,选中状态消失
 * 
 * ctrl + x 剪贴: 删除当前一行,并把当前一行复制到剪贴板 4
 * ctrl + a 全选: 全选当前一行 5
 * 这5个键位分别用1, 2, 3, 4, 5 表示 a, ctrl + c , ctrl + v , ctrl + x, ctrl + a
 * 输入1, 1, 1
 * 输出 3
 * 输入1, 2 , 3
 * 输出 1
*/

/**
 * a => 1
 * ctrl + c => 2
 * ctrl + v => 3
 * ctrl + x => 4
 * ctrl + a => 5
 * */ 
const inputKey = require('../src/index')

describe('输入,剪贴板', () => {
  test('输入a得到1', () => {
    expect(inputKey(1)).toBe(1)
  })
  test('输入a, a得到2', () => {
    expect(inputKey(1, 1)).toBe(2)
  })
  test('输入a, a, a得到3', () => {
    expect(inputKey(1, 1, 1)).toBe(3)
  })
  test('输入a, ctrl + a, ctrl + c, ctrl + v 还是得到1', () => {
    expect(inputKey(1, 5, 2, 3)).toBe(1)
  })
  test('输入a, ctrl + x, ctrl + v 还是得到1', () => {
    expect(inputKey(1, 4, 3)).toBe(1)
  })
  test('输入a, ctrl + a, a,  ctrl + v 还是得到1', () => {
    expect(inputKey(1, 4, 3)).toBe(1)
  })
  test('输入a, ctrl + a, a, ctrl + v 还是得到1', () => {
    expect(inputKey(1, 5, 1, 3)).toBe(1)
  })
  test('输入a, ctrl + x, a, ctrl + v 还是得到2', () => {
    expect(inputKey(1, 4, 1, 3)).toBe(2)
  })
  test('输入a, ctrl + x, a, ctrl + v, ctrl + v 还是得到3', () => {
    expect(inputKey(1, 4, 1, 3, 3)).toBe(3)
  })
})

About


Languages

Language:JavaScript 100.0%