2016-06-11 3 views
1

何らかの理由でcapybaraテストを実行しても、CKEditorがブラウザに表示されません。開発モードと生産モードでは、すべてが問題ありません。 CKEditorはプリコンパイルされ、CKEDITOR_BASEPATHのinit部分も存在します。ページ上で使用される他のすべてのものは正しく動作します。jsを有効にしてcapybaraテストを実行すると、CKEditorがレンダリングされない

は、私は私のアプリではこの宝石を使用する - 私は、コンソールからそれを実行すると、また、元のテキストエリアを隠しますが、エディタが示されていないhttps://github.com/galetahub/ckeditor

CKEDITOR.replace('editor1')、(私はテキストエリアの場所にのみ空きスペースを取得します)。ブラウザのコンソールにエラーはありません。

UPDATE:

私は偽の時間を設定しsinonhttps://github.com/travisjeffery/sinon-rails)を使用します。私はこのコードを削除すると

window.clock = sinon.useFakeTimers(<%= Time.now.to_i * 1000 %>) 

- CKEditorバージョン正常に動作しますが、このコードはjsファイルにするために必要とされているとルビー同じ時間。サイノンを取り除かずにCKEditorを正しく動作させるにはどうすればいいですか?

+1

おそらくckeditorが内部的にsettimeoutを使用するためでしょうか? –

+0

どのようにですか?私はそれが何らかの形でレンダリングに影響するはずではないかと疑います。私は数分の睡眠を行い、すべてをクリックしますが、それでも動作しません。 – kovpack

+0

@ parag-bhayani、あなたは正しいです。私は時間を設定するためにsinonを使用していました。私はそれを削除し、ckeditorがレンダリングされました。私はそれがsinonを取り除かないように働かせることができますか? – kovpack

答えて

3
あなたはおそらくどこかのJavaScriptの実行を停止しているので、エディタはあなたが前にsinonを使用する必要がありますので、遅延を使用して、あなたの使用、いくつかのためにsinonを使用している

ロードされていないこと、いくつかのタイムアウトを持っているので、それが起こっている

ckeditorのレンダリングを開始するか、またはckeditorをレンダリングした後

+1

このように実行すると、すべてがOKです(function(){ onLoad(function(){ window.clock = sinon.useFakeTimers(<%= Time.now.to_i * 1000%> ) }); })コール(this); – kovpack

関連する問題