Skip to content

Commit

Permalink
test double arrows, sequences, and chains; bump to 2.4
Browse files Browse the repository at this point in the history
  • Loading branch information
StoneCypher committed Jun 5, 2017
1 parent fe1528c commit e502974
Show file tree
Hide file tree
Showing 5 changed files with 64 additions and 25 deletions.
2 changes: 1 addition & 1 deletion dist/jssm.es5.cjs.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion dist/jssm.es5.cjs.min.js

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions docs/lib/index.html
Expand Up @@ -2,7 +2,7 @@
<html>
<head>
<meta charset='utf-8' />
<title>jssm 2.3.0 | Documentation</title>
<title>jssm 2.4.0 | Documentation</title>
<meta name='viewport' content='width=device-width,initial-scale=1'>
<link href='assets/bass.css' type='text/css' rel='stylesheet' />
<link href='assets/style.css' type='text/css' rel='stylesheet' />
Expand All @@ -14,7 +14,7 @@
<div class='fixed xs-hide fix-3 overflow-auto max-height-100'>
<div class='py1 px2'>
<h3 class='mb0 no-anchor'>jssm</h3>
<div class='mb1'><code>2.3.0</code></div>
<div class='mb1'><code>2.4.0</code></div>
<input
placeholder='Filter'
id='filter-input'
Expand Down
2 changes: 1 addition & 1 deletion package.json
@@ -1,6 +1,6 @@
{
"name": "jssm",
"version": "2.3.0",
"version": "2.4.0",
"engines": {
"node": ">=6.0.0"
},
Expand Down
79 changes: 59 additions & 20 deletions src/js/tests/parse.js
Expand Up @@ -9,26 +9,65 @@ const jssm = require('../../../build/jssm.es5.js');

describe('parse/1', async it => {

const AtoB = [{"from": "a","se": {"kind": "->","to": "b"}}],
AdB = [{"from": "a","se": {"kind": "->","to": "b","ldesc": [{"text":"c","value":"d"}]}}],
ABd = [{"from": "a","se": {"kind": "->","to": "b","rdesc": [{"text":"c","value":"d"}]}}],
AdBd = [{"from": "a","se": {"kind": "->","to": "b","ldesc": [{"text":"c","value":"d"}],"rdesc": [{"text":"e","value":"f"}]}}];

it('a->b;', t => t.deepEqual(AtoB, jssm.parse('a->b;') ));
it('a ->b;', t => t.deepEqual(AtoB, jssm.parse('a ->b;') ));
it('a-> b;', t => t.deepEqual(AtoB, jssm.parse('a-> b;') ));
it('a -> b;', t => t.deepEqual(AtoB, jssm.parse('a -> b;') ));

it('a{}->b;', t => t.deepEqual(AtoB, jssm.parse('a{}->b;') ));
it('a->{}b;', t => t.deepEqual(AtoB, jssm.parse('a->{}b;') ));
it('a{}->{}b;', t => t.deepEqual(AtoB, jssm.parse('a{}->{}b;') ));

it('a{c:d}->b;', t => t.deepEqual(AdB, jssm.parse('a{c:d;}->b;') ));
it('a{c:"d"}->b;', t => t.deepEqual(AdB, jssm.parse('a{c:"d";}->b;') ));
it('a{"c":d}->b;', t => t.deepEqual(AdB, jssm.parse('a{"c":d;}->b;') ));
it('a{"c":"d"}->b;', t => t.deepEqual(AdB, jssm.parse('a{"c":"d";}->b;') ));
it('a{c:d}->b;', t => t.deepEqual(ABd, jssm.parse('a->{c:d;}b;') ));
it('a{c:d}->b;', t => t.deepEqual(AdBd, jssm.parse('a{c:d;}->{e:f;}b;') ));
describe('forward arrow', async it => {

const AtoB = [{"from": "a","se": {"kind": "->","to": "b"}}],
AdB = [{"from": "a","se": {"kind": "->","to": "b","ldesc": [{"text":"c","value":"d"}]}}],
ABd = [{"from": "a","se": {"kind": "->","to": "b","rdesc": [{"text":"c","value":"d"}]}}],
AdBd = [{"from": "a","se": {"kind": "->","to": "b","ldesc": [{"text":"c","value":"d"}],"rdesc": [{"text":"e","value":"f"}]}}];

it('a->b;', t => t.deepEqual(AtoB, jssm.parse('a->b;') ));
it('a ->b;', t => t.deepEqual(AtoB, jssm.parse('a ->b;') ));
it('a-> b;', t => t.deepEqual(AtoB, jssm.parse('a-> b;') ));
it('a -> b;', t => t.deepEqual(AtoB, jssm.parse('a -> b;') ));

it('a{}->b;', t => t.deepEqual(AtoB, jssm.parse('a{}->b;') ));
it('a->{}b;', t => t.deepEqual(AtoB, jssm.parse('a->{}b;') ));
it('a{}->{}b;', t => t.deepEqual(AtoB, jssm.parse('a{}->{}b;') ));

it('a{c:d}->b;', t => t.deepEqual(AdB, jssm.parse('a{c:d;}->b;') ));
it('a{c:"d"}->b;', t => t.deepEqual(AdB, jssm.parse('a{c:"d";}->b;') ));
it('a{"c":d}->b;', t => t.deepEqual(AdB, jssm.parse('a{"c":d;}->b;') ));
it('a{"c":"d"}->b;', t => t.deepEqual(AdB, jssm.parse('a{"c":"d";}->b;') ));
it('a{c:d}->b;', t => t.deepEqual(ABd, jssm.parse('a->{c:d;}b;') ));
it('a{c:d}->b;', t => t.deepEqual(AdBd, jssm.parse('a{c:d;}->{e:f;}b;') ));

});

describe('double arrow', async it => {

const AtoB = [{"from": "a","se": {"kind": "<->","to": "b"}}],
AdB = [{"from": "a","se": {"kind": "<->","to": "b","ldesc": [{"text":"c","value":"d"}]}}],
ABd = [{"from": "a","se": {"kind": "<->","to": "b","rdesc": [{"text":"c","value":"d"}]}}],
AdBd = [{"from": "a","se": {"kind": "<->","to": "b","ldesc": [{"text":"c","value":"d"}],"rdesc": [{"text":"e","value":"f"}]}}];

it('a<->b;', t => t.deepEqual(AtoB, jssm.parse('a<->b;') ));
it('a <->b;', t => t.deepEqual(AtoB, jssm.parse('a <->b;') ));
it('a<-> b;', t => t.deepEqual(AtoB, jssm.parse('a<-> b;') ));
it('a <-> b;', t => t.deepEqual(AtoB, jssm.parse('a <-> b;') ));

it('a{}<->b;', t => t.deepEqual(AtoB, jssm.parse('a{}<->b;') ));
it('a<->{}b;', t => t.deepEqual(AtoB, jssm.parse('a<->{}b;') ));
it('a{}<->{}b;', t => t.deepEqual(AtoB, jssm.parse('a{}<->{}b;') ));

it('a{c:d}<->b;', t => t.deepEqual(AdB, jssm.parse('a{c:d;}<->b;') ));
it('a{c:"d"}<->b;', t => t.deepEqual(AdB, jssm.parse('a{c:"d";}<->b;') ));
it('a{"c":d}<->b;', t => t.deepEqual(AdB, jssm.parse('a{"c":d;}<->b;') ));
it('a{"c":"d"}<->b;', t => t.deepEqual(AdB, jssm.parse('a{"c":"d";}<->b;') ));
it('a{c:d}<->b;', t => t.deepEqual(ABd, jssm.parse('a<->{c:d;}b;') ));
it('a{c:d}<->b;', t => t.deepEqual(AdBd, jssm.parse('a{c:d;}<->{e:f;}b;') ));

});

describe('chain', async it => {
const AtoBtoC = [{"from":"a","se":{"kind":"->","to":"b","se":{"kind":"->","to":"c"}}}];
it('a->b->c;', t => t.deepEqual(AtoBtoC, jssm.parse('a->b->c;') ));
});

describe('sequence', async it => {
const AtoB_CtoD = [{"from":"a","se":{"kind":"->","to":"b"}},{"from":"c","se":{"kind":"->","to":"d"}}];
it('a->b;c->d;', t => t.deepEqual(AtoB_CtoD, jssm.parse('a->b;c->d;') ));
});

});

Expand Down

0 comments on commit e502974

Please sign in to comment.