From fcdfb0e31e9c5fd66aa65ca5957c162ec09ff7c4 Mon Sep 17 00:00:00 2001 From: Lucas Azzola Date: Sun, 15 Oct 2017 12:04:10 +1100 Subject: [PATCH] Add more tests for the nullish coalescing operator --- .../associativity/actual.js | 1 + .../associativity/expected.json | 132 ++++++++++++++++++ .../associativity/options.json | 4 + .../multiline/actual.js | 3 + .../multiline/expected.json | 132 ++++++++++++++++++ .../multiline/options.json | 4 + .../precedence-high/actual.js | 1 + .../precedence-high/expected.json | 132 ++++++++++++++++++ .../precedence-high/options.json | 4 + .../precedence-low/actual.js | 1 + .../precedence-low/expected.json | 132 ++++++++++++++++++ .../precedence-low/options.json | 4 + 12 files changed, 550 insertions(+) create mode 100644 test/fixtures/experimental/nullish-coalescing-operator/associativity/actual.js create mode 100644 test/fixtures/experimental/nullish-coalescing-operator/associativity/expected.json create mode 100644 test/fixtures/experimental/nullish-coalescing-operator/associativity/options.json create mode 100644 test/fixtures/experimental/nullish-coalescing-operator/multiline/actual.js create mode 100644 test/fixtures/experimental/nullish-coalescing-operator/multiline/expected.json create mode 100644 test/fixtures/experimental/nullish-coalescing-operator/multiline/options.json create mode 100644 test/fixtures/experimental/nullish-coalescing-operator/precedence-high/actual.js create mode 100644 test/fixtures/experimental/nullish-coalescing-operator/precedence-high/expected.json create mode 100644 test/fixtures/experimental/nullish-coalescing-operator/precedence-high/options.json create mode 100644 test/fixtures/experimental/nullish-coalescing-operator/precedence-low/actual.js create mode 100644 test/fixtures/experimental/nullish-coalescing-operator/precedence-low/expected.json create mode 100644 test/fixtures/experimental/nullish-coalescing-operator/precedence-low/options.json diff --git a/test/fixtures/experimental/nullish-coalescing-operator/associativity/actual.js b/test/fixtures/experimental/nullish-coalescing-operator/associativity/actual.js new file mode 100644 index 0000000000..1b247875fc --- /dev/null +++ b/test/fixtures/experimental/nullish-coalescing-operator/associativity/actual.js @@ -0,0 +1 @@ +a ?? b ?? c; diff --git a/test/fixtures/experimental/nullish-coalescing-operator/associativity/expected.json b/test/fixtures/experimental/nullish-coalescing-operator/associativity/expected.json new file mode 100644 index 0000000000..45384c754d --- /dev/null +++ b/test/fixtures/experimental/nullish-coalescing-operator/associativity/expected.json @@ -0,0 +1,132 @@ +{ + "type": "File", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "expression": { + "type": "BinaryExpression", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "left": { + "type": "BinaryExpression", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + }, + "identifierName": "a" + }, + "name": "a" + }, + "operator": "??", + "right": { + "type": "Identifier", + "start": 5, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 6 + }, + "identifierName": "b" + }, + "name": "b" + } + }, + "operator": "??", + "right": { + "type": "Identifier", + "start": 10, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 11 + }, + "identifierName": "c" + }, + "name": "c" + } + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/test/fixtures/experimental/nullish-coalescing-operator/associativity/options.json b/test/fixtures/experimental/nullish-coalescing-operator/associativity/options.json new file mode 100644 index 0000000000..e70662682b --- /dev/null +++ b/test/fixtures/experimental/nullish-coalescing-operator/associativity/options.json @@ -0,0 +1,4 @@ +{ + "plugins": ["nullishCoalescingOperator"] +} + \ No newline at end of file diff --git a/test/fixtures/experimental/nullish-coalescing-operator/multiline/actual.js b/test/fixtures/experimental/nullish-coalescing-operator/multiline/actual.js new file mode 100644 index 0000000000..fc603903ff --- /dev/null +++ b/test/fixtures/experimental/nullish-coalescing-operator/multiline/actual.js @@ -0,0 +1,3 @@ +a + ?? b + ?? c; diff --git a/test/fixtures/experimental/nullish-coalescing-operator/multiline/expected.json b/test/fixtures/experimental/nullish-coalescing-operator/multiline/expected.json new file mode 100644 index 0000000000..99f325b056 --- /dev/null +++ b/test/fixtures/experimental/nullish-coalescing-operator/multiline/expected.json @@ -0,0 +1,132 @@ +{ + "type": "File", + "start": 0, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 3, + "column": 7 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 3, + "column": 7 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 3, + "column": 7 + } + }, + "expression": { + "type": "BinaryExpression", + "start": 0, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 3, + "column": 6 + } + }, + "left": { + "type": "BinaryExpression", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 6 + } + }, + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + }, + "identifierName": "a" + }, + "name": "a" + }, + "operator": "??", + "right": { + "type": "Identifier", + "start": 8, + "end": 9, + "loc": { + "start": { + "line": 2, + "column": 5 + }, + "end": { + "line": 2, + "column": 6 + }, + "identifierName": "b" + }, + "name": "b" + } + }, + "operator": "??", + "right": { + "type": "Identifier", + "start": 15, + "end": 16, + "loc": { + "start": { + "line": 3, + "column": 5 + }, + "end": { + "line": 3, + "column": 6 + }, + "identifierName": "c" + }, + "name": "c" + } + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/test/fixtures/experimental/nullish-coalescing-operator/multiline/options.json b/test/fixtures/experimental/nullish-coalescing-operator/multiline/options.json new file mode 100644 index 0000000000..e70662682b --- /dev/null +++ b/test/fixtures/experimental/nullish-coalescing-operator/multiline/options.json @@ -0,0 +1,4 @@ +{ + "plugins": ["nullishCoalescingOperator"] +} + \ No newline at end of file diff --git a/test/fixtures/experimental/nullish-coalescing-operator/precedence-high/actual.js b/test/fixtures/experimental/nullish-coalescing-operator/precedence-high/actual.js new file mode 100644 index 0000000000..4809548d80 --- /dev/null +++ b/test/fixtures/experimental/nullish-coalescing-operator/precedence-high/actual.js @@ -0,0 +1 @@ +a |> b ?? c; diff --git a/test/fixtures/experimental/nullish-coalescing-operator/precedence-high/expected.json b/test/fixtures/experimental/nullish-coalescing-operator/precedence-high/expected.json new file mode 100644 index 0000000000..9ac8a339b0 --- /dev/null +++ b/test/fixtures/experimental/nullish-coalescing-operator/precedence-high/expected.json @@ -0,0 +1,132 @@ +{ + "type": "File", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "expression": { + "type": "BinaryExpression", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + }, + "identifierName": "a" + }, + "name": "a" + }, + "operator": "|>", + "right": { + "type": "BinaryExpression", + "start": 5, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "left": { + "type": "Identifier", + "start": 5, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 6 + }, + "identifierName": "b" + }, + "name": "b" + }, + "operator": "??", + "right": { + "type": "Identifier", + "start": 10, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 11 + }, + "identifierName": "c" + }, + "name": "c" + } + } + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/test/fixtures/experimental/nullish-coalescing-operator/precedence-high/options.json b/test/fixtures/experimental/nullish-coalescing-operator/precedence-high/options.json new file mode 100644 index 0000000000..37fbfac05f --- /dev/null +++ b/test/fixtures/experimental/nullish-coalescing-operator/precedence-high/options.json @@ -0,0 +1,4 @@ +{ + "plugins": ["nullishCoalescingOperator", "pipelineOperator"] +} + \ No newline at end of file diff --git a/test/fixtures/experimental/nullish-coalescing-operator/precedence-low/actual.js b/test/fixtures/experimental/nullish-coalescing-operator/precedence-low/actual.js new file mode 100644 index 0000000000..2b0c8c8ff8 --- /dev/null +++ b/test/fixtures/experimental/nullish-coalescing-operator/precedence-low/actual.js @@ -0,0 +1 @@ +a && b ?? c; diff --git a/test/fixtures/experimental/nullish-coalescing-operator/precedence-low/expected.json b/test/fixtures/experimental/nullish-coalescing-operator/precedence-low/expected.json new file mode 100644 index 0000000000..57c4decc9f --- /dev/null +++ b/test/fixtures/experimental/nullish-coalescing-operator/precedence-low/expected.json @@ -0,0 +1,132 @@ +{ + "type": "File", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "expression": { + "type": "BinaryExpression", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "left": { + "type": "LogicalExpression", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + }, + "identifierName": "a" + }, + "name": "a" + }, + "operator": "&&", + "right": { + "type": "Identifier", + "start": 5, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 6 + }, + "identifierName": "b" + }, + "name": "b" + } + }, + "operator": "??", + "right": { + "type": "Identifier", + "start": 10, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 11 + }, + "identifierName": "c" + }, + "name": "c" + } + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/test/fixtures/experimental/nullish-coalescing-operator/precedence-low/options.json b/test/fixtures/experimental/nullish-coalescing-operator/precedence-low/options.json new file mode 100644 index 0000000000..e70662682b --- /dev/null +++ b/test/fixtures/experimental/nullish-coalescing-operator/precedence-low/options.json @@ -0,0 +1,4 @@ +{ + "plugins": ["nullishCoalescingOperator"] +} + \ No newline at end of file