in pkg/pub_integration/lib/script/dev_version.dart [29:166]
Future<void> verify(bool stableFirst) async {
_pubToolClient = await DartToolClient.create(
pubHostedUrl: pubHostedUrl,
credentialsFileContent: credentialsFileContent);
_temp = await Directory.systemTemp.createTemp();
try {
_pubCacheDir = Directory(p.join(_temp.path, 'pub-cache'));
await _pubCacheDir.create(recursive: true);
await File(p.join(_pubCacheDir.path, 'credentials.json'))
.writeAsString(credentialsFileContent);
if (stableFirst) {
await _publishVersion('0.9.0');
_expectContent(
await _pubHttpClient.getLatestVersionPage('_dummy_pkg'),
present: [
'_dummy_pkg 0.9.0',
],
absent: [
'<a href="/packages/_dummy_pkg">0.9.0</a>',
'<a href="/packages/_dummy_pkg/versions/0.9.0">0.9.0</a>',
],
);
await _publishVersion('1.0.0-beta');
} else {
await _publishVersion('1.0.0-beta');
_expectContent(
await _pubHttpClient.getLatestVersionPage('_dummy_pkg'),
present: [
'_dummy_pkg 1.0.0-beta',
],
absent: [
'<a href="/packages/_dummy_pkg">1.0.0-beta</a>',
'<a href="/packages/_dummy_pkg/versions/1.0.0-beta">1.0.0-beta</a>',
],
);
await _publishVersion('0.9.0');
}
// At this point both 0.9.0 and 1.0.0-beta is published.
// We display both versions.
_expectContent(
await _pubHttpClient.getLatestVersionPage('_dummy_pkg'),
present: [
'_dummy_pkg 0.9.0',
'<a href="/packages/_dummy_pkg">0.9.0</a>',
'<a href="/packages/_dummy_pkg/versions/1.0.0-beta">1.0.0-beta</a>',
],
absent: [
'<a href="/packages/_dummy_pkg">1.0.0-beta</a>',
'<a href="/packages/_dummy_pkg/versions/0.9.0">0.9.0</a>',
],
);
// Publishing a stable version that is not larger than the dev version
// keeps it on the page.
await _publishVersion('0.9.1');
_expectContent(
await _pubHttpClient.getLatestVersionPage('_dummy_pkg'),
present: [
'_dummy_pkg 0.9.1',
'<a href="/packages/_dummy_pkg">0.9.1</a>',
'<a href="/packages/_dummy_pkg/versions/1.0.0-beta">1.0.0-beta</a>',
],
absent: [
'<a href="/packages/_dummy_pkg">0.9.0</a>',
'<a href="/packages/_dummy_pkg">1.0.0-beta</a>',
'<a href="/packages/_dummy_pkg/versions/0.9.0">0.9.0</a>',
'<a href="/packages/_dummy_pkg/versions/1.0.0">0.9.1</a>',
],
);
// Publishing a new dev version updates the dev version link.
await _publishVersion('1.0.0-gamma');
_expectContent(
await _pubHttpClient.getLatestVersionPage('_dummy_pkg'),
present: [
'_dummy_pkg 0.9.1',
'<a href="/packages/_dummy_pkg">0.9.1</a>',
'<a href="/packages/_dummy_pkg/versions/1.0.0-gamma">1.0.0-gamma</a>',
],
absent: [
'<a href="/packages/_dummy_pkg">0.9.0</a>',
'<a href="/packages/_dummy_pkg">1.0.0-beta</a>',
'<a href="/packages/_dummy_pkg">1.0.0-gamma</a>',
'<a href="/packages/_dummy_pkg/versions/0.9.0">0.9.0</a>',
'<a href="/packages/_dummy_pkg/versions/1.0.0">0.9.1</a>',
'<a href="/packages/_dummy_pkg/versions/1.0.0-beta">1.0.0-beta</a>',
],
);
// Publishing the stable version removes the dev version link.
await _publishVersion('1.0.0');
_expectContent(
await _pubHttpClient.getLatestVersionPage('_dummy_pkg'),
present: [
'_dummy_pkg 1.0.0',
],
absent: [
'<a href="/packages/_dummy_pkg">0.9.0</a>',
'<a href="/packages/_dummy_pkg">0.9.1</a>',
'<a href="/packages/_dummy_pkg">1.0.0</a>',
'<a href="/packages/_dummy_pkg">1.0.0-beta</a>',
'<a href="/packages/_dummy_pkg">1.0.0-gamma</a>',
'<a href="/packages/_dummy_pkg/versions/0.9.0">0.9.0</a>',
'<a href="/packages/_dummy_pkg/versions/1.0.0">0.9.1</a>',
'<a href="/packages/_dummy_pkg/versions/1.0.0-beta">1.0.0-beta</a>',
'<a href="/packages/_dummy_pkg/versions/1.0.0-gamma">1.0.0-gamma</a>',
],
);
// Publishing a new dev version will trigger the re-appear of the dev link.
await _publishVersion('1.1.0-dev');
_expectContent(
await _pubHttpClient.getLatestVersionPage('_dummy_pkg'),
present: [
'_dummy_pkg 1.0.0',
'<a href="/packages/_dummy_pkg">1.0.0</a>',
'<a href="/packages/_dummy_pkg/versions/1.1.0-dev">1.1.0-dev</a>',
],
absent: [
'<a href="/packages/_dummy_pkg">0.9.0</a>',
'<a href="/packages/_dummy_pkg">0.9.1</a>',
'<a href="/packages/_dummy_pkg">1.0.0-beta</a>',
'<a href="/packages/_dummy_pkg">1.0.0-gamma</a>',
'<a href="/packages/_dummy_pkg/versions/0.9.0">0.9.0</a>',
'<a href="/packages/_dummy_pkg/versions/1.0.0">0.9.1</a>',
'<a href="/packages/_dummy_pkg/versions/1.0.0-beta">1.0.0-beta</a>',
'<a href="/packages/_dummy_pkg/versions/1.0.0-gamma">1.0.0-gamma</a>',
],
);
} finally {
await _temp.delete(recursive: true);
await _pubToolClient!.close();
_pubToolClient = null;
await _pubHttpClient.close();
}
}