2023-06-13 15:34:44 -05:00
|
|
|
import { loadFixture, runCLI } from './test-utils.js';
|
|
|
|
import { expect } from 'chai';
|
|
|
|
import * as cheerio from 'cheerio';
|
|
|
|
import cloudflare from '../dist/index.js';
|
|
|
|
|
2023-09-11 13:04:44 -05:00
|
|
|
describe('Wrangler Cloudflare Runtime', () => {
|
2023-06-13 15:34:44 -05:00
|
|
|
/** @type {import('./test-utils').Fixture} */
|
|
|
|
let fixture;
|
2023-07-17 07:30:02 -05:00
|
|
|
/** @type {import('./test-utils').WranglerCLI} */
|
|
|
|
let cli;
|
2023-06-13 15:34:44 -05:00
|
|
|
|
2023-09-05 14:35:41 -05:00
|
|
|
before(async function () {
|
2023-06-13 15:34:44 -05:00
|
|
|
fixture = await loadFixture({
|
|
|
|
root: './fixtures/cf/',
|
|
|
|
output: 'server',
|
|
|
|
adapter: cloudflare(),
|
|
|
|
});
|
|
|
|
await fixture.build();
|
2023-07-17 07:30:02 -05:00
|
|
|
|
2023-09-05 14:35:41 -05:00
|
|
|
cli = await runCLI('./fixtures/cf/', { silent: true, port: 8786 });
|
|
|
|
await cli.ready.catch((e) => {
|
|
|
|
console.log(e);
|
|
|
|
// if fail to start, skip for now as it's very flaky
|
|
|
|
this.skip();
|
|
|
|
});
|
2023-06-13 15:34:44 -05:00
|
|
|
});
|
|
|
|
|
2023-07-17 07:30:02 -05:00
|
|
|
after(async () => {
|
|
|
|
await cli.stop();
|
|
|
|
});
|
2023-06-13 15:34:44 -05:00
|
|
|
|
2023-07-17 07:30:02 -05:00
|
|
|
it('Load cf and caches API', async () => {
|
2023-09-05 14:35:41 -05:00
|
|
|
let res = await fetch(`http://127.0.0.1:8786/`);
|
2023-07-17 07:30:02 -05:00
|
|
|
expect(res.status).to.equal(200);
|
|
|
|
let html = await res.text();
|
|
|
|
let $ = cheerio.load(html);
|
2023-08-15 12:10:51 -05:00
|
|
|
|
2023-08-16 13:28:57 -05:00
|
|
|
expect($('#hasRuntime').text()).to.equal('true');
|
2023-07-17 07:30:02 -05:00
|
|
|
expect($('#hasCache').text()).to.equal('true');
|
2023-06-13 15:34:44 -05:00
|
|
|
});
|
|
|
|
});
|
2023-09-11 13:04:44 -05:00
|
|
|
|
|
|
|
describe('Astro Cloudflare Runtime', () => {
|
|
|
|
/** @type {import('./test-utils').Fixture} */
|
|
|
|
let fixture;
|
|
|
|
let devServer;
|
|
|
|
|
|
|
|
before(async () => {
|
|
|
|
fixture = await loadFixture({
|
|
|
|
root: './fixtures/cf/',
|
|
|
|
output: 'server',
|
|
|
|
adapter: cloudflare({
|
|
|
|
runtime: 'local',
|
|
|
|
}),
|
|
|
|
image: {
|
|
|
|
service: {
|
|
|
|
entrypoint: 'astro/assets/services/noop',
|
|
|
|
},
|
|
|
|
},
|
|
|
|
});
|
|
|
|
process.chdir('./test/fixtures/cf');
|
|
|
|
devServer = await fixture.startDevServer();
|
|
|
|
});
|
|
|
|
|
|
|
|
after(async () => {
|
|
|
|
await devServer.stop();
|
|
|
|
});
|
|
|
|
|
|
|
|
it('Populates CF, Vars & Bindings', async () => {
|
|
|
|
let res = await fixture.fetch('/');
|
|
|
|
expect(res.status).to.equal(200);
|
|
|
|
let html = await res.text();
|
|
|
|
let $ = cheerio.load(html);
|
|
|
|
expect($('#hasRuntime').text()).to.equal('true');
|
|
|
|
expect($('#hasCache').text()).to.equal('true');
|
|
|
|
});
|
|
|
|
});
|