Skip to content

Commit 1512870

Browse files
committed
feat(json-crdt-extensions): 🎸 add sample collected Quill fuzzer traces to tests
1 parent 6cc563d commit 1512870

File tree

8 files changed

+309
-0
lines changed

8 files changed

+309
-0
lines changed

‎src/json-crdt-extensions/quill-delta/__tests__/traces.spec.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,13 @@ import {splitUnSplitQuillTrace} from './traces/split-unsplit';
1414
import {blockHandlingQuillTrace} from './traces/blocks';
1515
import {insertDeleteImageQuillTrace} from './traces/insert-delete-image';
1616
import {annotateAnnotationsQuillTrace} from './traces/annotate-annotations';
17+
import {fuzz1QuillTrace} from './traces/fuzz-1';
18+
import {fuzz2QuillTrace} from './traces/fuzz-2';
19+
import {fuzz3QuillTrace} from './traces/fuzz-3';
20+
import {fuzz4QuillTrace} from './traces/fuzz-4';
21+
import {fuzz5QuillTrace} from './traces/fuzz-5';
22+
import {fuzz6QuillTrace} from './traces/fuzz-6';
23+
import {fuzz7QuillTrace} from './traces/fuzz-7';
1724

1825
const assertTrace = (trace: QuillTrace, api: QuillDeltaApi) => {
1926
let delta = new Delta([]);
@@ -53,6 +60,13 @@ const traces: Trace[] = [
5360
['block-handling', blockHandlingQuillTrace],
5461
['insert-delete-image', insertDeleteImageQuillTrace],
5562
['annotate-annotations', annotateAnnotationsQuillTrace],
63+
['fuzz-1', fuzz1QuillTrace],
64+
['fuzz-2', fuzz2QuillTrace],
65+
['fuzz-3', fuzz3QuillTrace],
66+
['fuzz-4', fuzz4QuillTrace],
67+
['fuzz-5', fuzz5QuillTrace],
68+
['fuzz-6', fuzz6QuillTrace],
69+
['fuzz-7', fuzz7QuillTrace],
5670
];
5771

5872
for (const [name, trace] of traces) {
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
import {QuillTrace} from '../../types';
2+
3+
export const fuzz1QuillTrace: QuillTrace = {
4+
contents: {
5+
ops: [
6+
{
7+
insert: {
8+
link: 'x$1||',
9+
},
10+
},
11+
],
12+
},
13+
transactions: [
14+
[
15+
{
16+
insert: 'Y.?',
17+
},
18+
],
19+
[
20+
{
21+
retain: 2,
22+
},
23+
{
24+
insert: 'Km',
25+
},
26+
],
27+
[
28+
{
29+
insert: 'S',
30+
},
31+
{
32+
delete: 2,
33+
},
34+
{
35+
retain: 3,
36+
},
37+
{
38+
insert: {
39+
link: 'x$1||',
40+
},
41+
},
42+
],
43+
[
44+
{
45+
retain: 2,
46+
},
47+
{
48+
insert: {
49+
link: '5/6a',
50+
},
51+
},
52+
{
53+
delete: 2,
54+
},
55+
],
56+
[
57+
{
58+
insert: {
59+
link: 'г西',
60+
},
61+
},
62+
],
63+
[
64+
{
65+
delete: 3,
66+
},
67+
{
68+
delete: 1,
69+
},
70+
],
71+
],
72+
};
Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
import {QuillTrace} from '../../types';
2+
3+
export const fuzz2QuillTrace: QuillTrace = {
4+
contents: {
5+
ops: [
6+
{
7+
insert: ':',
8+
},
9+
{
10+
insert: '<.',
11+
attributes: {
12+
italic: true,
13+
},
14+
},
15+
{
16+
insert: 'P',
17+
},
18+
{
19+
insert: 'CE',
20+
attributes: {
21+
italic: true,
22+
},
23+
},
24+
{
25+
insert: {
26+
link: 'ER}Z',
27+
},
28+
},
29+
{
30+
insert: '2_F#',
31+
},
32+
{
33+
insert: {
34+
link: 'P?G',
35+
},
36+
},
37+
],
38+
},
39+
transactions: [
40+
[
41+
{
42+
insert: {
43+
link: '5@J/',
44+
},
45+
},
46+
],
47+
[
48+
{
49+
delete: 1,
50+
},
51+
{
52+
insert: ':<.CE',
53+
},
54+
],
55+
[
56+
{
57+
retain: 3,
58+
},
59+
{
60+
retain: 2,
61+
attributes: {
62+
italic: null,
63+
},
64+
},
65+
{
66+
insert: {
67+
link: 'ER}Z',
68+
},
69+
},
70+
],
71+
[
72+
{
73+
retain: 1,
74+
},
75+
{
76+
retain: 4,
77+
attributes: {
78+
italic: true,
79+
bold: null,
80+
},
81+
},
82+
{
83+
retain: 1,
84+
},
85+
{
86+
insert: '2_F#',
87+
},
88+
],
89+
[
90+
{
91+
retain: 3,
92+
},
93+
{
94+
insert: 'P',
95+
},
96+
{
97+
retain: 6,
98+
},
99+
{
100+
retain: 1,
101+
attributes: {
102+
italic: null,
103+
},
104+
},
105+
{
106+
insert: {
107+
link: 'P?G',
108+
},
109+
},
110+
],
111+
],
112+
};
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
import {QuillTrace} from '../../types';
2+
3+
export const fuzz3QuillTrace: QuillTrace = {
4+
contents: {
5+
ops: [{insert: {link: '0000'}}, {insert: '11112242'}, {insert: {link: '55555'}}],
6+
},
7+
transactions: [
8+
[
9+
{
10+
insert: {
11+
link: '0000',
12+
},
13+
},
14+
{
15+
insert: '1111111',
16+
},
17+
],
18+
[
19+
{
20+
retain: 4,
21+
},
22+
{
23+
retain: 4,
24+
attributes: {
25+
bold: null,
26+
},
27+
},
28+
{
29+
insert: '222',
30+
},
31+
],
32+
[
33+
{
34+
retain: 7,
35+
},
36+
{
37+
insert: {
38+
link: '33',
39+
},
40+
},
41+
{
42+
retain: 3,
43+
},
44+
{
45+
insert: '4',
46+
},
47+
{
48+
retain: 1,
49+
},
50+
{
51+
insert: {
52+
link: '55555',
53+
},
54+
},
55+
],
56+
[
57+
{
58+
retain: 5,
59+
},
60+
{
61+
delete: 4,
62+
},
63+
],
64+
],
65+
};
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import {QuillTrace} from '../../types';
2+
3+
export const fuzz4QuillTrace: QuillTrace = {
4+
contents: {ops: [{insert: '0'}, {insert: {link: '1111'}}, {insert: '0'}]},
5+
transactions: [
6+
[{insert: '00000'}],
7+
[{retain: 1}, {retain: 3, attributes: {bold: null}}, {insert: {link: '1111'}}],
8+
[{delete: 3}],
9+
],
10+
};
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import {QuillTrace} from '../../types';
2+
3+
export const fuzz5QuillTrace: QuillTrace = {
4+
contents: {ops: [{insert: {link: 'A'}}]},
5+
transactions: [
6+
[{insert: {link: 'A'}}],
7+
[{insert: {link: 'B'}}, {retain: 1, attributes: {bold: true, italic: null}}],
8+
[{retain: 1}, {insert: {link: 'C'}}],
9+
[{retain: 1}, {retain: 2, attributes: {bold: null}}],
10+
[{delete: 2}, {retain: 1, attributes: {bold: null}}],
11+
],
12+
};
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import {QuillTrace} from '../../types';
2+
3+
export const fuzz6QuillTrace: QuillTrace = {
4+
contents: {ops: [{attributes: {italic: true}, insert: 'AA'}, {insert: 'ABBBB'}, {insert: {link: 'C'}}]},
5+
transactions: [
6+
[{insert: 'AAAA'}],
7+
[{retain: 3, attributes: {bold: null}}],
8+
[{retain: 2, attributes: {italic: true}}, {delete: 1}],
9+
[{retain: 3}, {insert: 'BBBB'}, {insert: {link: 'C'}}],
10+
[{retain: 2}, {retain: 2, attributes: {bold: null}}],
11+
],
12+
};
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import {QuillTrace} from '../../types';
2+
3+
export const fuzz7QuillTrace: QuillTrace = {
4+
contents: {ops: [{insert: {link: 'B'}}, {insert: 'AABBBB'}]},
5+
transactions: [
6+
[{insert: 'AAAAA'}],
7+
[{delete: 2}, {retain: 1, attributes: {bold: true, italic: true}}],
8+
[{retain: 3, attributes: {bold: null, italic: null}}],
9+
[{delete: 1}],
10+
[{insert: {link: 'B'}}, {retain: 2}, {insert: 'BBBB'}],
11+
],
12+
};

0 commit comments

Comments
 (0)