retrievers.js 948 B

123456789101112131415161718192021222324252627
  1. import * as t from "../lib";
  2. import { parse } from "@babel/parser";
  3. function getBody(program) {
  4. return parse(program, { sourceType: "module" }).program.body;
  5. }
  6. describe("retrievers", function() {
  7. describe("getBindingIdentifiers", function() {
  8. it("variable declarations", function() {
  9. const program = "var a = 1; let b = 2; const c = 3;";
  10. const ids = t.getBindingIdentifiers(getBody(program));
  11. expect(Object.keys(ids)).toEqual(["a", "b", "c"]);
  12. });
  13. it("function declarations", function() {
  14. const program = "var foo = 1; function bar() { var baz = 2; }";
  15. const ids = t.getBindingIdentifiers(getBody(program));
  16. expect(Object.keys(ids)).toEqual(["bar", "foo"]);
  17. });
  18. it("export named declarations", function() {
  19. const program = "export const foo = 'foo';";
  20. const ids = t.getBindingIdentifiers(getBody(program));
  21. expect(Object.keys(ids)).toEqual(["foo"]);
  22. });
  23. });
  24. });