@@ -3,6 +3,7 @@ import {sequentialTraceNames, traces} from '../__bench__/util/traces';
33import { editors } from '../__bench__/util/editors' ;
44import { Model } from '../model' ;
55import { loadConcurrentTrace } from '../__bench__/util/concurrent-trace' ;
6+ import { loadFuzzerTrace } from '../__bench__/util/fuzzer-traces' ;
67
78describe ( 'sequential traces' , ( ) => {
89 const editor = editors [ 'json-joy' ] ;
@@ -15,7 +16,7 @@ describe('sequential traces', () => {
1516 }
1617} ) ;
1718
18- describe . skip ( 'concurrent traces' , ( ) => {
19+ describe ( 'concurrent traces' , ( ) => {
1920 const traces : string [ ] = [ 'friendsforever' ] ;
2021 for ( const traceName of traces ) {
2122 test ( `"${ traceName } " trace` , async ( ) => {
@@ -26,3 +27,27 @@ describe.skip('concurrent traces', () => {
2627 } ) ;
2728 }
2829} ) ;
30+
31+ describe ( 'fuzzer traces' , ( ) => {
32+ const traces = [
33+ < const > 'trace-1' ,
34+ < const > 'trace-2' ,
35+ < const > 'trace-3' ,
36+ < const > 'long' ,
37+ < const > 'short' ,
38+ < const > 'low-concurrency' ,
39+ < const > 'high-concurrency' ,
40+ < const > 'str-only' ,
41+ < const > 'bin-only' ,
42+ ] ;
43+
44+ for ( const traceName of traces ) {
45+ test ( `"${ traceName } " trace` , async ( ) => {
46+ const [ batch , doc ] = loadFuzzerTrace ( traceName ) ;
47+ const model = Model . withLogicalClock ( 1000000 ) ;
48+ model . applyBatch ( batch ) ;
49+ expect ( Model . fromBinary ( model . toBinary ( ) ) . toString ( ) ) . toBe ( doc . toString ( ) ) ;
50+ expect ( model . view ( ) ) . toStrictEqual ( doc . view ( ) ) ;
51+ } ) ;
52+ }
53+ } ) ;
0 commit comments