blob: b388e9d145fc96620b308479763e4e7ccb66668f [file] [edit]
// Copyright (c) 2025, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
import 'dart:io';
import 'package:http/http.dart' as http;
import 'package:jot/jot.dart';
import 'package:path/path.dart' as p;
import 'package:test/test.dart';
import 'support.dart';
// Server (--serve) integration tests using test/fixtures/demo.
void main() {
group('server', () {
late final DocServer server;
late final Directory tempDir;
setUpAll(() async {
final sourceDir = Directory(p.join('test', 'fixtures', 'server'));
tempDir = Directory.systemTemp.createTempSync('jot');
final jot = Jot(inDir: sourceDir, outDir: tempDir, logger: NullLogger());
server = await jot.serve(0);
});
tearDownAll(() async {
tempDir.deleteSync(recursive: true);
await server.dispose();
});
test('index.html', () async {
final response = await http.read(
Uri.http('localhost:${server.port}', 'index.html'),
);
expect(response, contains('<title>package:server_demo</title>'));
});
test('a.html', () async {
var response = await http.read(
Uri.http('localhost:${server.port}', 'a.html'),
);
expect(response, contains('<h1>a.dart</h1>'));
expect(response, contains('bar('));
expect(response, contains('Classes'));
response = await http.read(
Uri.http('localhost:${server.port}', 'a/A.html'),
);
expect(response, contains('<h1>A</h1>'));
expect(response, contains('class A'));
expect(response, contains('foo()'));
});
test('b.html', () async {
final response = await http.read(
Uri.http('localhost:${server.port}', 'b.html'),
);
expect(response, contains('<h1>b.dart</h1>'));
expect(response, contains('baz('));
expect(response, isNot(contains('Classes')));
});
});
}