質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

Q&A

解決済

1回答

1526閲覧

jestテスト時にvue-smooth-dndを複数ファイルでimportするとエラーする

退会済みユーザー

退会済みユーザー

総合スコア0

Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

0グッド

0クリップ

投稿2019/01/05 08:39

編集2019/08/15 18:55

vue.jsでjestを使ったunitテストをしています。
テストファイルの中で、vue-smooth-dndをimportするとエラーしてしまいます。
原因がよくわからないため、予測できる原因だけでも心当たりなどあれば送っていただけると助かりますm(_ _)m

エラーするテストファイル

下の二つのファイルを作るとエラーします。
(importを一つの方でコメントアウトするとエラーしません。)

・ファイル1

one.spec.js

1import 'vue-smooth-dnd' 2 3describe('ONE', () => { 4 it('one', () => { 5 expect(1).toBe(1) 6 }) 7})

・ファイル2

two.spec.js

1import 'vue-smooth-dnd' 2 3describe('TWO', () => { 4 it('two', () => { 5 expect(1).toBe(1) 6 }) 7})

エラー内容

上のテストを実行すると下記のエラーがでます。

● Test suite failed to run TypeError: Illegal invocation at Node.get [as childNodes] (node_modules/jsdom/lib/jsdom/living/generated/Node.js:423:13) at Node.get (node_modules/smooth-dnd/dist/index.js:1:15997) at node_modules/smooth-dnd/dist/index.js:1:15891 at Object.<anonymous> (node_modules/smooth-dnd/dist/index.js:1:16064) at Object.defineProperty.value (node_modules/smooth-dnd/dist/index.js:1:16414) at n (node_modules/smooth-dnd/dist/index.js:1:358) at Object.<anonymous> (node_modules/smooth-dnd/dist/index.js:1:16522) at Object.defineProperty.value (node_modules/smooth-dnd/dist/index.js:1:23545) at n (node_modules/smooth-dnd/dist/index.js:1:358) at Object.<anonymous> (node_modules/smooth-dnd/dist/index.js:1:23661)

4. エラー内容

・テストを実行し、下の「one, two」の順序になるとエラーが起きる。
(「two, one」の順序だとエラーしない)

tests/unit/one.spec.js tests/unit/two.spec.js

vue-smooth-dnd自体のエラーでしょうか?
テストが実行される順番でエラーが出たり出なかったりするのが、原因がよくわからなく困っています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

あまり見ないエラーなので調べてみたところ、ネイティヴ関数の書き換えが問題っぽいので、

このあたりが原因かなと思います。エラー出たり出なかったりは謎ですね…。
いずれにせよ smooth-dnd 自体テスト書かれてないのでプロダクトに採用するのは微妙そう。

issue 建てるのも手だけれど、代替探したほうが手っ取り早いかも。

投稿2019/01/05 18:30

yhg

総合スコア2161

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/01/07 10:50

ありがとうございます! 大変助かりました! ライブラリを導入時にテストコードもサポートされているかもチェックした方が良いのですね、勉強になりました!m(_ _)m 代替案を探しつつ、複数のファイルでimportするとエラーするという性質なので、一旦smooth-dndを使う処理は一つのファイルにまとめるようにします。
退会済みユーザー

退会済みユーザー

2019/04/23 12:02

エラーする箇所をコメントアウトしたgithubリポジトリを作成しました。 以下をpackage.jsonに追加して対処しました。 https://github.com/bokotomo/vue-smooth-dnd
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問