問題タブ [ember-cli-mirage]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - Mirage の Ember データが index.hbs に表示されない
ここで初心者をエンバーします。ここでは、Ember Web サイトのチュートリアルに従っています。
Mirage を実装してみるまでは、私は単語の例を研究開発しており、すべてが機能しています。データが index.hbs ページに表示されることはありません。
ここに私のモデルフックがあります:
そして私のモデル: Rental.js
私のindex.hbs:
そして最後に私の app/mirage/config.js:
Chrome 開発者コンソールに次の 2 つのメッセージが表示されます。
Mirage: Ember アプリは「http://localhost:4200/assets/vendor.js」を取得しようとしましたが、この要求を処理するために定義されたルートがありませんでした。mirage/config.js ファイルで、このパスに一致するルートを定義します。名前空間を追加するのを忘れましたか?
そしてこの警告:
警告: ペイロードで "data" が検出されましたが、モデル名 "datum" のモデルが見つかりませんでした (super-rentals@serializer:-rest:.modelNameFromPayloadKey("data") を使用して解決されたモデル名)
ただし、次のように情報が正常に取得されたようです。
成功したリクエスト: GET /rentals オブジェクト {データ: 配列[3]}
これは適切なデータを反映しています。それとindex.hbsの間のどこかで壊れているだけで、私はそれを理解するのが初心者です。それは私の側の小さな誤解に過ぎないと確信しています。どんな助けでも大歓迎です!
ember.js - Ember テスト/Mirage が DOM 要素を見つけられない
Mirage を使用して、Ember でいくつかの基本的な受け入れテストを実行しようとしています。この時点では、足を見つけるためだけに、テスト環境を設定するためにフィクスチャのみを使用しています。テスト環境で ember を実行すると (つまり、-e test を使用して)、アプリに期待されるデータが取り込まれていることがわかります。そして、DOMにはいくつかのボタンなどがあります。すべて問題ありません。
ただし、ページにアクセスしてボタンをクリックするテストを実行すると、テストでボタンが見つからないことがわかります。つまり、-e test を実行して localhost を確認すると、アプリが問題ないように見えます。しかし、localhost/tests をチェックすると、-e テスト画面に確実にあるボタンが見つからないというテストが失敗します。
ボタンが -e テスト環境に存在することを確認しました。インスペクターを使用し、コンソール ラインで基本的な jquery select を発行するだけです。
それで、セットアップまたは構成のどこかに問題があると思いますか?
特に:
最初のテスト (URL にアクセスするだけ) はパスします。2 番目のテストでは、ボタンが見つからないと表示されます。繰り返しますが、-e test を実行し、コンソールに $('.top-row-orders-button') と入力すると、問題のボタンが返されます。
誰かが必要とする情報をさらに提供していただければ幸いです。助けていただければ幸いです。私は運がないので、数日間これに頭をぶつけてきました。
追加するために編集:
より一般的には、Mirage を使用する場合、DOM が /tests 環境内にあるもの (つまり、実際のテストが実行されている DOM) を確認する方法はありますか? つまり、DOM は各 Mirage テストに対してどのように見えるのでしょうか?
ember-cli - Ember は、特定のリクエストが蜃気楼をインターネットに渡すことを許可します
私は ember-cli-mirage を使用しており、いくつかのリクエストをモックしたいのですが、他のリクエストは実際にインターネットに発信できるようにしています。特定のパターンに一致する Mirage リクエストを無視して、実際に Web にアクセスできるようにする方法はありますか?
ember.js - Ember_simple_auth と受け入れテストの統合 (Mirage を使用)
OMDb API (The Open Movie Database) を使用する基本的なテスト アプリを作成しました。SOポスターの助けを借りて、すべて正常に動作しています。
プロジェクトに ember-simple-auth (バージョン 1.0.0) を追加し、開発側の作業を開始しました。基本的に、メイン アプリにアクセスするための簡単なログイン画面があります。期待どおりに動作しています。
しかし、私の 2 つの基本的な受け入れテストは現在機能していません。ember-simple-auth コンポーネントと機能をアプリに追加した後、受け入れテスト ファイルに以下を追加しました。
テスト自体で、次のように追加しました。
テストは失敗し、次のように述べています。
さらに、インポート行と authenticateSession() 呼び出しをコメントアウトしても、テストは失敗しますが、これは DOM が明らかに完全に空であるためです。
誰かが興味を持っている/喜んでいる場合は、リポジトリですべてを利用できます: git@github.com:bdrsgg/ember-movie-example.git (branch = feature/ember-simple-auth)
私が間違っている設定の問題、またはそのようなものがあると思います。誰もが提供できる助けに感謝します。
追加するために編集:
問題は間違いなく認証に集中しているようです。たとえば、ルートから AuthenticatedRouteMixin 呼び出しを削除し、authenticateSession() 呼び出しを除外すると、テストはパスします。
ember.js - ember-cli-mirage に一時的な遅延を導入
受け入れテストには ember-cli-mirage を使用しています。特定のケースでは、低速の接続でデータをフェッチする際の動作を確認したいと考えています。
ember-cli-miragetiming
には、応答の遅延をシミュレートするという設定があります。ただし、この設定は特定のテストで異なるように変更することはできません。
私が試したことは、偽のエンドポイントで約束を返すことです。いくつかのインポート/エクスポートを通じて、テストから約束の解決を制御できました。残念ながら、ember-cli-mirage は戻り値をプロミスとして認識していないようで、そのままアダプターにそのまま渡します。
質問:これを行う方法はありますか? つまり、ember-cli-mirage で特定の応答の遅延を制御するには?
ember.js - mirage からの失敗した認証要求 (401 Unauthorized) は、常に ember-simple-auth-token で解決されます
私の Ember アプリには、ログイン用のアクションがあります。
サーバー ( http://127.0.0.1:8091 ) でテストすると、正常に動作します。応答が 200 の場合、ログインしています。401 の場合、エラー メッセージが設定されています。
問題は ember-cli-mirage で発生します。テスト用に次のコードがあります。
テストトークンを送信するだけで、資格情報が正しい場合に機能します。アプリにログインできます。しかし、間違った資格情報で試してみると、JS コンソールに次のエラーが表示されます。
キャッチされていない TypeError: 未定義のプロパティ 'split' を読み取ることができません
少し調べたところ、次のコードで呼び出される関数 getTokenData 内でエラーが発生しているようです。
と書かれている行を参照してくださいvar tokenData = _this2.getTokenData(token);
。リクエストが拒否されたので、2 番目の関数 (拒否されたプロミス) を呼び出すべきではありませんか?
応答が空の 401 だったため、ember-simple-auth-token が存在しないトークンを操作しようとしているようです。拒否された要求にもトークンを含めようとしましたが、それでも同じエラーが発生します。
応答がローカル サーバー (および実際のサーバー) から送信された場合、正常に動作することを覚えておいてください。
Mirage をデバッグする方法が見つかりませんでした。回答の詳細を確認するにはどうすればよいですか? ブラウザから開発者ツールの [ネットワーク] タブにリクエストが表示されません。
これを修正するには、次に何を調べる必要がありますか?
node.js - ember: handlebars は兄弟の peerDependencies を満たしていません
ember を 2.4.2 に更新しました。
ember init
ここに記載されているようにブループリントを再実行するには: https://github.com/ember-cli/ember-cli/releases/tag/v2.4.2
次のエラーが表示されます。
アドオンを追加する必要がありますが、アプリケーションはとにかく正常に動作しているようでember-cli-mirage
、同じエラーが発生し、物がインストールされていません。
プロジェクトのどのファイルにも文字列ハンドルバーが含まれていないため、ここでどのファイルが関連するかわかりません。
ember.js - Cli mirage ルートが受け入れテストで機能しない
cli mirage をモックサーバーとして使用して、ログインページの受け入れテストを試みていました。Mirage で定義されたルートは、アプリケーションからアクセスするときに正常に機能します。しかし、ember test で試してみると、返されます
Mirage: Ember アプリが「http://localhost:4200/tests?module=Acceptance | login' ですが、この要求を処理するために定義されたルートがありませんでした。mirage/config.js ファイルで、このパスに一致するルートを定義します。名前空間を追加するのを忘れましたか?
受け入れテスト
ミラージュ/設定
この問題を修正するにはどうすればよいですか? 誰か助けてください。