-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.spec.ts
50 lines (46 loc) · 2.63 KB
/
index.spec.ts
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
/* eslint-disable @typescript-eslint/naming-convention */
import type {} from 'vitest/globals'
import { getSingularFormFromExpression, getVariableNameFromCallExpresion } from './index'
type TestCases = Record<string, (e: Vi.Assertion) => void>
test('getVariableNameFromCallExpresion()', () => {
const cases: TestCases = {
'getVariableNameFromCallExpresion(...args)': e => e.toBe('variableNameFromCallExpresion'),
// That's weird but I don't see anything actionable here
'getID()': e => e.toBe('iD'),
'useRouter()': e => e.toBe('router'),
'fs.readFile()': e => e.toBe('file'),
'this.getIsScrolledToTop()': e => e.toBe('isScrolledToTop'),
'[...test].findIndex()': e => e.toBe('index'),
'await modifyJsonFile(() => {getUser()}, {getSomeFlag: false})': e => e.toBe('jsonFile'),
'document.getElementsByTagNameNS(namespaceURI, localName)': e => e.toBe('elements'),
'fs.select()': e => e.toBe(undefined),
// allow?
// 'require("fs").readFile()': e => e.toBe(undefined)
// 'await user.get(...anyArgs)': e => e.toBe('user'),
// 'await testUpdateRect(...anyArgs)': e => e.toBe('rect'),
// shouldn't be iterator here
'selectedThing.getHandler().getIterator()': e => e.toBe('handler'),
'await updateRect(...anyArgs)': e => e.toBe('rect'),
'await selectedUser(...anyArgs)': e => e.toBe(undefined),
'this.messages.find((message) => message.getId() === messageId)': e => e.toBe(undefined),
'this.messages.findUser((message) => message.getId() === messageId)': e => e.toBe('user'),
'await this.messages.find.this.messages.find.this.messages.findUser()': e => e.toBe('user'),
}
for (const [testCase, func] of Object.entries(cases)) func(expect(getVariableNameFromCallExpresion(testCase)))
})
test('getSingularFormFromExpression()', () => {
const cases: TestCases = {
items: e => e.toMatchInlineSnapshot('"item"'),
$refs: e => e.toMatchInlineSnapshot('"$ref"'),
//
'items.array': e => e.toMatchInlineSnapshot('undefined'),
'user.getItems()': e => e.toMatchInlineSnapshot('undefined'),
//
MessagesList: e => e.toMatchInlineSnapshot('"message"'),
allMessagesList: e => e.toMatchInlineSnapshot('"message"'),
messageList: e => e.toMatchInlineSnapshot('undefined'),
messagesList: e => e.toMatchInlineSnapshot('"message"'),
'await this.messages.find.this.messages.findUser().superMessages': e => e.toBe('superMessage'),
}
for (const [testCase, func] of Object.entries(cases)) func(expect(getSingularFormFromExpression(testCase)))
})