Skip to content

fix: Remove usage of ast-type builders #569

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Mar 17, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`resolveObjectKeysToArray can resolve imported objects passed to Object.keys 1`] = `
Array [
"\\"bar\\"",
"\\"foo\\"",
"\\"1\\"",
"\\"2\\"",
"\\"3\\"",
"\\"baz\\"",
]
`;

exports[`resolveObjectKeysToArray can resolve spreads from imported objects 1`] = `
Array [
"\\"foo\\"",
"\\"baz\\"",
"\\"bar\\"",
]
`;

exports[`resolveObjectKeysToArray resolves Object.keys but ignores duplicates 1`] = `
Array [
"\\"boo\\"",
"\\"foo\\"",
"\\"doo\\"",
]
`;

exports[`resolveObjectKeysToArray resolves Object.keys but ignores duplicates with getter and setter 1`] = `
Array [
"\\"x\\"",
]
`;

exports[`resolveObjectKeysToArray resolves Object.keys when using getters 1`] = `
Array [
"\\"boo\\"",
"\\"foo\\"",
"\\"bar\\"",
]
`;

exports[`resolveObjectKeysToArray resolves Object.keys when using resolvable spread 1`] = `
Array [
"\\"boo\\"",
"\\"foo\\"",
"\\"doo\\"",
]
`;

exports[`resolveObjectKeysToArray resolves Object.keys when using setters 1`] = `
Array [
"\\"boo\\"",
"\\"foo\\"",
"\\"bar\\"",
]
`;

exports[`resolveObjectKeysToArray resolves Object.keys with identifiers 1`] = `
Array [
"\\"bar\\"",
"\\"foo\\"",
]
`;

exports[`resolveObjectKeysToArray resolves Object.keys with literals 1`] = `
Array [
"\\"bar\\"",
"\\"5\\"",
]
`;

exports[`resolveObjectKeysToArray resolves Object.keys with literals as computed key 1`] = `
Array [
"\\"bar\\"",
"\\"5\\"",
]
`;
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`resolveObjectValuesToArray can resolve imported objects passed to Object.values 1`] = `
Array [
"\\"bar\\"",
"\\"foo\\"",
"0",
"5",
"null",
"null",
"7",
"\\"foo\\"",
]
`;

exports[`resolveObjectValuesToArray can resolve spreads from imported objects 1`] = `
Array [
"\\"bar\\"",
"\\"baz\\"",
"\\"foo\\"",
]
`;

exports[`resolveObjectValuesToArray resolves Object.values but ignores duplicates 1`] = `
Array [
"1",
"5",
"2",
]
`;

exports[`resolveObjectValuesToArray resolves Object.values but ignores duplicates with getter and setter 1`] = `Array []`;

exports[`resolveObjectValuesToArray resolves Object.values when using getters 1`] = `
Array [
"1",
"2",
]
`;

exports[`resolveObjectValuesToArray resolves Object.values when using resolvable spread 1`] = `
Array [
"1",
"4",
"2",
]
`;

exports[`resolveObjectValuesToArray resolves Object.values when using setters 1`] = `
Array [
"1",
"2",
]
`;

exports[`resolveObjectValuesToArray resolves Object.values with literals as computed key 1`] = `
Array [
"2",
"1",
]
`;

exports[`resolveObjectValuesToArray resolves Object.values with numbers 1`] = `
Array [
"0",
"5",
]
`;

exports[`resolveObjectValuesToArray resolves Object.values with strings 1`] = `
Array [
"\\"bar\\"",
"\\"foo\\"",
]
`;

exports[`resolveObjectValuesToArray resolves Object.values with undefined or null 1`] = `
Array [
"null",
"null",
]
`;
77 changes: 10 additions & 67 deletions src/utils/__tests__/resolveObjectKeysToArray-test.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import { builders } from 'ast-types';
import {
statement,
noopImporter,
Expand Down Expand Up @@ -32,38 +31,23 @@ describe('resolveObjectKeysToArray', () => {
['var foo = { bar: 1, foo: 2 };', 'Object.keys(foo);'].join('\n'),
);

expect(resolveObjectKeysToArray(path, noopImporter)).toEqualASTNode(
builders.arrayExpression([
builders.literal('bar'),
builders.literal('foo'),
]),
);
expect(resolveObjectKeysToArray(path, noopImporter)).toMatchSnapshot();
});

it('resolves Object.keys with literals', () => {
const path = expressionLast(
['var foo = { "bar": 1, 5: 2 };', 'Object.keys(foo);'].join('\n'),
);

expect(resolveObjectKeysToArray(path, noopImporter)).toEqualASTNode(
builders.arrayExpression([
builders.literal('bar'),
builders.literal('5'),
]),
);
expect(resolveObjectKeysToArray(path, noopImporter)).toMatchSnapshot();
});

it('resolves Object.keys with literals as computed key', () => {
const path = expressionLast(
['var foo = { ["bar"]: 1, [5]: 2};', 'Object.keys(foo);'].join('\n'),
);

expect(resolveObjectKeysToArray(path, noopImporter)).toEqualASTNode(
builders.arrayExpression([
builders.literal('bar'),
builders.literal('5'),
]),
);
expect(resolveObjectKeysToArray(path, noopImporter)).toMatchSnapshot();
});

it('resolves Object.keys when using resolvable spread', () => {
Expand All @@ -75,13 +59,7 @@ describe('resolveObjectKeysToArray', () => {
].join('\n'),
);

expect(resolveObjectKeysToArray(path, noopImporter)).toEqualASTNode(
builders.arrayExpression([
builders.literal('boo'),
builders.literal('foo'),
builders.literal('doo'),
]),
);
expect(resolveObjectKeysToArray(path, noopImporter)).toMatchSnapshot();
});

it('resolves Object.keys when using getters', () => {
Expand All @@ -91,13 +69,7 @@ describe('resolveObjectKeysToArray', () => {
),
);

expect(resolveObjectKeysToArray(path, noopImporter)).toEqualASTNode(
builders.arrayExpression([
builders.literal('boo'),
builders.literal('foo'),
builders.literal('bar'),
]),
);
expect(resolveObjectKeysToArray(path, noopImporter)).toMatchSnapshot();
});

it('resolves Object.keys when using setters', () => {
Expand All @@ -108,13 +80,7 @@ describe('resolveObjectKeysToArray', () => {
].join('\n'),
);

expect(resolveObjectKeysToArray(path, noopImporter)).toEqualASTNode(
builders.arrayExpression([
builders.literal('boo'),
builders.literal('foo'),
builders.literal('bar'),
]),
);
expect(resolveObjectKeysToArray(path, noopImporter)).toMatchSnapshot();
});

it('resolves Object.keys but ignores duplicates', () => {
Expand All @@ -126,13 +92,7 @@ describe('resolveObjectKeysToArray', () => {
].join('\n'),
);

expect(resolveObjectKeysToArray(path, noopImporter)).toEqualASTNode(
builders.arrayExpression([
builders.literal('boo'),
builders.literal('foo'),
builders.literal('doo'),
]),
);
expect(resolveObjectKeysToArray(path, noopImporter)).toMatchSnapshot();
});

it('resolves Object.keys but ignores duplicates with getter and setter', () => {
Expand All @@ -142,9 +102,7 @@ describe('resolveObjectKeysToArray', () => {
),
);

expect(resolveObjectKeysToArray(path, noopImporter)).toEqualASTNode(
builders.arrayExpression([builders.literal('x')]),
);
expect(resolveObjectKeysToArray(path, noopImporter)).toMatchSnapshot();
});

it('does not resolve Object.keys when using unresolvable spread', () => {
Expand All @@ -169,16 +127,7 @@ describe('resolveObjectKeysToArray', () => {
Object.keys(foo);
`);

expect(resolveObjectKeysToArray(path, mockImporter)).toEqualASTNode(
builders.arrayExpression([
builders.literal('bar'),
builders.literal('foo'),
builders.literal(1),
builders.literal(2),
builders.literal(3),
builders.literal('baz'),
]),
);
expect(resolveObjectKeysToArray(path, mockImporter)).toMatchSnapshot();
});

it('can resolve spreads from imported objects', () => {
Expand All @@ -188,12 +137,6 @@ describe('resolveObjectKeysToArray', () => {
Object.keys(abc);
`);

expect(resolveObjectKeysToArray(path, mockImporter)).toEqualASTNode(
builders.arrayExpression([
builders.literal('foo'),
builders.literal('baz'),
builders.literal('bar'),
]),
);
expect(resolveObjectKeysToArray(path, mockImporter)).toMatchSnapshot();
});
});
Loading