libgit2dart/test/repository_clone_test.dart
2021-09-24 12:07:11 +03:00

68 lines
1.6 KiB
Dart

import 'dart:io';
import 'package:test/test.dart';
import 'package:libgit2dart/libgit2dart.dart';
import 'helpers/util.dart';
void main() {
late Repository repo;
late Directory tmpDir;
final cloneDir = Directory('${Directory.systemTemp.path}/cloned');
setUp(() async {
tmpDir = await setupRepo(Directory('test/assets/testrepo/'));
repo = Repository.open(tmpDir.path);
if (await cloneDir.exists()) {
cloneDir.delete(recursive: true);
}
});
tearDown(() async {
repo.free();
await tmpDir.delete(recursive: true);
cloneDir.delete(recursive: true);
});
group('Repository.clone', () {
test('successfully clones repository', () async {
final clonedRepo = Repository.clone(
url: tmpDir.path,
localPath: cloneDir.path,
);
expect(clonedRepo.isEmpty, false);
expect(clonedRepo.isBare, false);
clonedRepo.free();
});
test('successfully clones repository as bare', () async {
final clonedRepo = Repository.clone(
url: tmpDir.path,
localPath: cloneDir.path,
bare: true,
);
expect(clonedRepo.isEmpty, false);
expect(clonedRepo.isBare, true);
clonedRepo.free();
});
test('successfully clones repository with provided checkout branch name',
() async {
final clonedRepo = Repository.clone(
url: tmpDir.path,
localPath: cloneDir.path,
bare: true,
checkoutBranch: 'feature',
);
expect(clonedRepo.isEmpty, false);
expect(clonedRepo.isBare, true);
expect(clonedRepo.head.name, 'refs/heads/feature');
clonedRepo.free();
});
});
}