WXL
3 天以前 2cc85c64f1c64a2dbaeae276a3e2ca8420de76b7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
const createMockService = require('../helper/createMockService')
 
test.skip('report command: basic', async () => {
  const report = require('../../report')
 
  const service = createMockService(
    [
      {
        id: 'vue-cli-plugin-i18n',
        apply: api => {
          api.registerCommand('i18n:report', report.options, report.service)
        }
      }
    ],
    process.cwd()
  )
 
  const output = await service.run('i18n:report', {
    src: './tests/fixture/**/*.?(js|vue)',
    locales: './tests/fixture/locales/*.json'
  })
  const missingKeys = [
    { path: 'messages.fuga.foo', language: 'en' },
    { path: 'messages.buz', language: 'ja' },
    { path: 'messages.bar', language: 'ja' },
    { path: 'messages.hoge', language: 'ja' },
    { path: 'messages.fuga.foo', language: 'ja' }
  ]
  const unusedKeys = [
    { path: 'messages.piyo', language: 'en' },
    { path: 'messages.piyo', language: 'ja' }
  ]
  const predicate = item => {
    return {
      path: item.path,
      language: item.language
    }
  }
  expect(output.missingKeys.map(predicate)).toEqual(missingKeys)
  expect(output.unusedKeys.map(predicate)).toEqual(unusedKeys)
})
 
test.skip('report command: required arguments', async () => {
  const report = require('../../report')
 
  const service = createMockService(
    [
      {
        id: 'vue-cli-plugin-i18n',
        apply: api => {
          api.registerCommand('i18n:report', report.options, report.service)
        }
      }
    ],
    process.cwd()
  )
 
  const output = await service.run('i18n:report', {})
  expect(output).toBeUndefined()
})
 
test.skip('report command: optional arguments', async () => {
  const report = require('../../report')
 
  const service = createMockService(
    [
      {
        id: 'vue-cli-plugin-i18n',
        apply: api => {
          api.registerCommand('i18n:report', report.options, report.service)
        }
      }
    ],
    process.cwd()
  )
 
  const output = await service.run('i18n:report', {
    src: './tests/fixture/**/*.?(js|vue)',
    locales: './tests/fixture/locales/*.json',
    type: 'missing',
    output: './tests/output.json'
  })
  const missingKeys = [
    { path: 'messages.fuga.foo', language: 'en' },
    { path: 'messages.buz', language: 'ja' },
    { path: 'messages.bar', language: 'ja' },
    { path: 'messages.hoge', language: 'ja' },
    { path: 'messages.fuga.foo', language: 'ja' }
  ]
  const predicate = item => {
    return {
      path: item.path,
      language: item.language
    }
  }
  expect(output.missingKeys.map(predicate)).toEqual(missingKeys)
})