From 5ce54799ff4d1624399dd239ddd16196193bd3c9 Mon Sep 17 00:00:00 2001 From: Brian Ng Date: Sat, 20 Jan 2018 12:29:38 -0600 Subject: [PATCH] Tweak and add tests to babel-helper-annotate-as-pure (#7245) --- .../src/index.js | 10 ++---- .../test/index.js | 36 +++++++++++++++++++ 2 files changed, 39 insertions(+), 7 deletions(-) create mode 100644 packages/babel-helper-annotate-as-pure/test/index.js diff --git a/packages/babel-helper-annotate-as-pure/src/index.js b/packages/babel-helper-annotate-as-pure/src/index.js index 0148aa1cc0..f04cd31212 100644 --- a/packages/babel-helper-annotate-as-pure/src/index.js +++ b/packages/babel-helper-annotate-as-pure/src/index.js @@ -2,13 +2,9 @@ import * as t from "@babel/types"; const PURE_ANNOTATION = "#__PURE__"; -const isPureAnnotated = node => { - const { leadingComments } = node; - if (leadingComments === undefined) { - return false; - } - return leadingComments.some(comment => /[@#]__PURE__/.test(comment.value)); -}; +const isPureAnnotated = ({ leadingComments }) => + leadingComments && + leadingComments.some(comment => /[@#]__PURE__/.test(comment.value)); export default function annotateAsPure(pathOrNode) { const node = pathOrNode.node || pathOrNode; diff --git a/packages/babel-helper-annotate-as-pure/test/index.js b/packages/babel-helper-annotate-as-pure/test/index.js new file mode 100644 index 0000000000..d2c9a34f5d --- /dev/null +++ b/packages/babel-helper-annotate-as-pure/test/index.js @@ -0,0 +1,36 @@ +import annotateAsPure from "../"; +import assert from "assert"; + +describe("@babel/helper-annotate-as-pure", () => { + it("will add leading comment", () => { + const node = {}; + annotateAsPure(node); + + assert.deepEqual(node.leadingComments, [ + { + type: "CommentBlock", + value: "#__PURE__", + }, + ]); + }); + + it("will not add an extra leading comment", () => { + const node = { + leadingComments: [ + { + type: "CommentBlock", + value: "#__PURE__", + }, + ], + }; + + annotateAsPure(node); + + assert.deepEqual(node.leadingComments, [ + { + type: "CommentBlock", + value: "#__PURE__", + }, + ]); + }); +});