-
-
Notifications
You must be signed in to change notification settings - Fork 312
/
DatasetsTests.php
111 lines (94 loc) · 3.21 KB
/
DatasetsTests.php
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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
<?php
use Pest\Repositories\DatasetsRepository;
it('show only the names of named datasets in their description', function () {
$descriptions = array_keys(DatasetsRepository::resolve([
[
'one' => [1],
'two' => [[2]],
],
], __FILE__));
expect($descriptions[0])->toBe('dataset "one"')
->and($descriptions[1])->toBe('dataset "two"');
});
it('show the actual dataset of non-named datasets in their description', function () {
$descriptions = array_keys(DatasetsRepository::resolve([
[
[1],
[[2]],
],
], __FILE__));
expect($descriptions[0])->toBe('(1)');
expect($descriptions[1])->toBe('([2])');
});
it('show only the names of multiple named datasets in their description', function () {
$descriptions = array_keys(DatasetsRepository::resolve([
[
'one' => [1],
'two' => [[2]],
],
[
'three' => [3],
'four' => [[4]],
],
], __FILE__));
expect($descriptions[0])->toBe('dataset "one" / dataset "three"');
expect($descriptions[1])->toBe('dataset "one" / dataset "four"');
expect($descriptions[2])->toBe('dataset "two" / dataset "three"');
expect($descriptions[3])->toBe('dataset "two" / dataset "four"');
});
it('show the actual dataset of multiple non-named datasets in their description', function () {
$descriptions = array_keys(DatasetsRepository::resolve([
[
[1],
[[2]],
],
[
[3],
[[4]],
],
], __FILE__));
expect($descriptions[0])->toBe('(1) / (3)');
expect($descriptions[1])->toBe('(1) / ([4])');
expect($descriptions[2])->toBe('([2]) / (3)');
expect($descriptions[3])->toBe('([2]) / ([4])');
});
it('show the correct description for mixed named and not-named datasets', function () {
$descriptions = array_keys(DatasetsRepository::resolve([
[
'one' => [1],
[[2]],
],
[
[3],
'four' => [[4]],
],
], __FILE__));
expect($descriptions[0])->toBe('dataset "one" / (3)');
expect($descriptions[1])->toBe('dataset "one" / dataset "four"');
expect($descriptions[2])->toBe('([2]) / (3)');
expect($descriptions[3])->toBe('([2]) / dataset "four"');
});
it('shows the correct description for long texts with newlines', function () {
$descriptions = array_keys(DatasetsRepository::resolve([
[
['some very \nlong text with \n newlines'],
],
], __FILE__));
expect($descriptions[0])->toBe('(\'some very long text with …wlines\')');
});
it('shows the correct description for arrays with many elements', function () {
$descriptions = array_keys(DatasetsRepository::resolve([
[
[[1, 2, 3, 4, 5]],
],
], __FILE__));
expect($descriptions[0])->toBe('([1, 2, 3, …])');
});
it('shows the correct description of datasets with html', function () {
$descriptions = array_keys(DatasetsRepository::resolve([
[
'<div class="flex items-center"></div>',
],
], __FILE__));
expect($descriptions[0])->toBe('(\'<div class="flex items-center"></div>\')');
});