diff --git a/src/core/importType.js b/src/core/importType.js index df60575c01..d811f76aad 100644 --- a/src/core/importType.js +++ b/src/core/importType.js @@ -67,7 +67,7 @@ function isInternalModule(name, settings, path) { } function isRelativeToParent(name) { - return /^\.\.[\\/]/.test(name) + return/^\.\.$|^\.\.[\\/]/.test(name) } const indexFiles = ['.', './', './index', './index.js'] diff --git a/tests/src/rules/order.js b/tests/src/rules/order.js index d5a0dd98bc..6d826ccae9 100644 --- a/tests/src/rules/order.js +++ b/tests/src/rules/order.js @@ -3,7 +3,7 @@ import { test, getTSParsers } from '../utils' import { RuleTester } from 'eslint' const ruleTester = new RuleTester() - , rule = require('rules/order') + , rule = require('../../../src/rules/order') function withoutAutofixOutput(test) { return Object.assign({}, test, { output: test.code }) @@ -19,6 +19,7 @@ ruleTester.run('order', rule, { var relParent1 = require('../foo'); var relParent2 = require('../foo/bar'); var relParent3 = require('../'); + var relParent4 = require('..'); var sibling = require('./foo'); var index = require('./');`, }), @@ -196,7 +197,13 @@ ruleTester.run('order', rule, { import { Input } from '-/components/Input'; import { Button } from '-/components/Button'; - import { add } from './helper';`, + import p from '..'; + import q from '../'; + + import { add } from './helper'; + + import i from '.'; + import j from './';`, options: [ { 'newlines-between': 'always', @@ -2002,6 +2009,25 @@ ruleTester.run('order', rule, { message: '`foo` import should occur before import of `Bar`', }], }), + // Alphabetize with parent paths + test({ + code: ` + import a from '../a'; + import p from '..'; + `, + output: ` + import p from '..'; + import a from '../a'; + `, + options: [{ + groups: ['external', 'index'], + alphabetize: {order: 'asc'}, + }], + errors: [{ + ruleID: 'order', + message: '`..` import should occur before import of `../a`', + }], + }), // Alphabetize with require test({ code: `