-
Notifications
You must be signed in to change notification settings - Fork 0
/
class-spec.ts
77 lines (65 loc) · 2.42 KB
/
class-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
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
import { initChart } from './c3-helper'
describe('c3 chart class', function() {
'use strict'
var chart
var args = {
data: {
columns: [
['data1', 30, 200, 100, 400, 150, 250],
['data2 prefix', 50, 20, 10, 40, 15, 25],
['data3 мужчины', 150, 120, 110, 140, 115, 125],
['my\u007fapp', 10, 20, 40, 20, 65, 55]
]
}
}
beforeEach(function(done) {
chart = initChart(chart, args, done)
})
describe('internal.generateTargetClass', function() {
it('should not replace any characters', function() {
var input = 'data1',
expected = '-' + input,
suffix = chart.internal.generateTargetClass(input)
expect(suffix).toBe(expected)
})
it('should replace space to "-"', function() {
var input = 'data1 suffix',
expected = '-data1-suffix',
suffix = chart.internal.generateTargetClass(input)
expect(suffix).toBe(expected)
})
it('should replace space to "-" with multibyte characters', function() {
var input = 'data1 suffix 日本語',
expected = '-data1-suffix-日本語',
suffix = chart.internal.generateTargetClass(input)
expect(suffix).toBe(expected)
})
it('should not replace special characters', function() {
var input = 'data1 !@#$%^&*()_=+,.<>"\':;[]/|?~`{}\\',
expected = '-data1-!@#$%^&*()_=+,.<>"\':;[]/|?~`{}\\',
suffix = chart.internal.generateTargetClass(input)
expect(suffix).toBe(expected)
})
})
describe('internal.getTargetSelectorSuffix', function() {
it('should escape special characters', function() {
var input = 'data1 !@#$%^&*()_=+,.<>"\':;[]/|?~`{}\\',
expected =
'-data1-\\!\\@\\#\\$\\%\\^\\&\\*\\(\\)_\\=\\+\\,\\.\\<\\>\\"\\\'\\:\\;\\[\\]\\/\\|\\?\\~\\`\\{\\}\\\\',
suffix = chart.internal.getTargetSelectorSuffix(input)
expect(suffix).toBe(expected)
})
})
describe('select target in chart', function() {
it('should replace space to "-" with multibyte characters', function() {
var selector = '.c3-target-data3-мужчины'
expect(chart.internal.main.select(selector).size()).toBe(1)
})
it('should be able to select class with unicode characters', () => {
const selector = `.c3-target${chart.internal.getTargetSelectorSuffix(
args.data.columns[3][0]
)}`
expect(chart.internal.main.select(selector).size()).toBe(1)
})
})
})