From 2c3fad404dcc8ee596e92d32bf12db32896b8793 Mon Sep 17 00:00:00 2001 From: Stanislav Lashmanov <slashmanov@gitlab.com> Date: Thu, 27 Jan 2022 11:48:18 +0000 Subject: [PATCH] Prevent .$nextTick usage in tests The exception is `this.$nextTick()`, which is allowed because a component definition/implementation may legitimately call its _own_ method. This rule is about preventing test code from calling that instance method. Addresses https://gitlab.com/gitlab-org/frontend/rfcs/-/issues/47. --- .eslintrc.yml | 5 ++++- spec/frontend/ide/components/preview/clientside_spec.js | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/.eslintrc.yml b/.eslintrc.yml index e80b2e6d9eb8..17459804a7d2 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -95,7 +95,8 @@ rules: order: ignore overrides: - files: - - '**/spec/**/*' + - 'ee/spec/frontend*/**/*' + - 'spec/frontend*/**/*' rules: '@gitlab/require-i18n-strings': off '@gitlab/no-runtime-template-compiler': off @@ -103,6 +104,8 @@ overrides: - error - selector: CallExpression[callee.object.name=/(wrapper|vm)/][callee.property.name="setData"] message: 'Avoid using "setData" on VTU wrapper' + - selector: MemberExpression[object.type!='ThisExpression'][property.type='Identifier'][property.name='$nextTick'] + message: 'Using $nextTick from a component instance is discouraged. Import nextTick directly from the Vue package.' - files: - 'config/**/*' - 'scripts/**/*' diff --git a/spec/frontend/ide/components/preview/clientside_spec.js b/spec/frontend/ide/components/preview/clientside_spec.js index d6df061ad04b..e253c4de4b2f 100644 --- a/spec/frontend/ide/components/preview/clientside_spec.js +++ b/spec/frontend/ide/components/preview/clientside_spec.js @@ -121,7 +121,7 @@ describe('IDE clientside preview', () => { it('pings usage success', async () => { dispatchCodesandboxReady(); - await wrapper.vm.$nextTick(); + await nextTick(); expect(storeClientsideActions.pingUsage).toHaveBeenCalledTimes(2); expect(storeClientsideActions.pingUsage).toHaveBeenCalledWith( expect.anything(), -- GitLab