|
| 1 | +import { click } from '@ember/test-helpers'; |
1 | 2 | import { module, test } from 'qunit'; |
2 | 3 |
|
3 | 4 | import percySnapshot from '@percy/ember'; |
| 5 | +import { Response } from 'miragejs'; |
4 | 6 |
|
5 | 7 | import { setupApplicationTest } from 'crates-io/tests/helpers'; |
6 | 8 |
|
@@ -112,4 +114,25 @@ module('Acceptance | README rendering', function (hooks) { |
112 | 114 | await visit('/crates/serde'); |
113 | 115 | assert.dom('[data-test-no-readme]').exists(); |
114 | 116 | }); |
| 117 | + |
| 118 | + test('it shows a fallback if no readme is available2', async function (assert) { |
| 119 | + let crate = this.server.create('crate', { name: 'serde' }); |
| 120 | + this.server.create('version', { crate, num: '1.0.0' }); |
| 121 | + |
| 122 | + // Simulate a server error when fetching the README |
| 123 | + this.server.get('/api/v1/crates/:name/:version/readme', {}, 500); |
| 124 | + |
| 125 | + await visit('/crates/serde'); |
| 126 | + assert.dom('[data-test-readme-error]').exists(); |
| 127 | + assert.dom('[data-test-retry-button]').exists(); |
| 128 | + |
| 129 | + // Simulate a successful response when fetching the README |
| 130 | + this.server.get( |
| 131 | + '/api/v1/crates/:name/:version/readme', |
| 132 | + () => new Response(200, { 'Content-Type': 'text/html' }, 'foo'), |
| 133 | + ); |
| 134 | + |
| 135 | + await click('[data-test-retry-button]'); |
| 136 | + assert.dom('[data-test-readme]').hasText('foo'); |
| 137 | + }); |
115 | 138 | }); |
0 commit comments