From 466f960c7bd615307619f1e9b3b9bcea28fbabc9 Mon Sep 17 00:00:00 2001 From: Aleksey Kulikov Date: Thu, 23 Sep 2021 16:35:05 +0300 Subject: [PATCH] refactor: extract repo setup for tests --- example/config_example.dart | 11 +++----- example/helpers.dart | 16 ------------ example/reference_example.dart | 10 +++----- test/blob_test.dart | 14 +++------- test/branch_test.dart | 14 +++------- test/checkout_test.dart | 32 ++++++++++------------- test/commit_test.dart | 17 ++++-------- test/diff_test.dart | 16 ++++-------- test/helpers/util.dart | 21 +++++++++------ test/index_test.dart | 16 ++++-------- test/merge_test.dart | 14 +++------- test/odb_test.dart | 22 +++++++--------- test/oid_test.dart | 16 ++++-------- test/patch_test.dart | 14 +++------- test/reference_test.dart | 18 +++++-------- test/reflog_test.dart | 15 ++++------- test/remote_test.dart | 29 +++++++++------------ test/repository_test.dart | 47 +++++++++++++++------------------- test/reset_test.dart | 17 +++++------- test/revparse_test.dart | 14 +++------- test/revwalk_test.dart | 17 +++++------- test/stash_test.dart | 24 +++++++---------- test/tag_test.dart | 14 +++------- test/tree_test.dart | 14 +++------- test/treebuilder_test.dart | 14 +++------- test/worktree_test.dart | 40 ++++++++++++----------------- 26 files changed, 176 insertions(+), 320 deletions(-) delete mode 100644 example/helpers.dart diff --git a/example/config_example.dart b/example/config_example.dart index b394ba0..6508320 100644 --- a/example/config_example.dart +++ b/example/config_example.dart @@ -1,13 +1,10 @@ import 'dart:io'; - import 'package:libgit2dart/libgit2dart.dart'; - -import 'helpers.dart'; +import '../test/helpers/util.dart'; void main() async { // Preparing example repository. - final tmpDir = '${Directory.systemTemp.path}/example_repo/'; - await prepareRepo(tmpDir); + final tmpDir = await setupRepo(Directory('test/assets/testrepo/')); // Open system + global config file. final config = Config.open(); @@ -22,7 +19,7 @@ void main() async { // Open config file at provided path. // Exception is thrown if file not found. try { - final repoConfig = Config.open('$tmpDir/.git/config'); + final repoConfig = Config.open('${tmpDir.path}/.git/config'); print('\nAll entries of repo config:'); for (final entry in repoConfig) { @@ -57,5 +54,5 @@ void main() async { } // Removing example repository. - await disposeRepo(tmpDir); + await tmpDir.delete(recursive: true); } diff --git a/example/helpers.dart b/example/helpers.dart deleted file mode 100644 index ecf2712..0000000 --- a/example/helpers.dart +++ /dev/null @@ -1,16 +0,0 @@ -import 'dart:io'; -import '../test/helpers/util.dart'; - -Future prepareRepo(String path) async { - if (await Directory(path).exists()) { - await Directory(path).delete(recursive: true); - } - await copyRepo( - from: Directory('test/assets/testrepo/'), - to: await Directory(path).create(), - ); -} - -Future disposeRepo(String path) async { - await Directory(path).delete(recursive: true); -} diff --git a/example/reference_example.dart b/example/reference_example.dart index 3108b7a..a10fe61 100644 --- a/example/reference_example.dart +++ b/example/reference_example.dart @@ -1,14 +1,12 @@ import 'dart:io'; - import 'package:libgit2dart/libgit2dart.dart'; -import 'helpers.dart'; +import '../test/helpers/util.dart'; void main() async { // Preparing example repository. - final tmpDir = '${Directory.systemTemp.path}/example_repo/'; - await prepareRepo(tmpDir); + final tmpDir = await setupRepo(Directory('test/assets/testrepo/')); - final repo = Repository.open(tmpDir); + final repo = Repository.open(tmpDir.path); // Get list of repo's references. print('Repository references: ${repo.references.list()}'); @@ -39,5 +37,5 @@ void main() async { repo.free(); // Removing example repository. - await disposeRepo(tmpDir); + await tmpDir.delete(recursive: true); } diff --git a/test/blob_test.dart b/test/blob_test.dart index 3b08bf1..d661e16 100644 --- a/test/blob_test.dart +++ b/test/blob_test.dart @@ -7,27 +7,21 @@ import 'helpers/util.dart'; void main() { late Repository repo; late Blob blob; - final tmpDir = '${Directory.systemTemp.path}/blob_testrepo/'; + late Directory tmpDir; const blobSHA = '9c78c21d6680a7ffebc76f7ac68cacc11d8f48bc'; const blobContent = 'Feature edit\n'; const newBlobContent = 'New blob\n'; setUp(() async { - if (await Directory(tmpDir).exists()) { - await Directory(tmpDir).delete(recursive: true); - } - await copyRepo( - from: Directory('test/assets/testrepo/'), - to: await Directory(tmpDir).create(), - ); - repo = Repository.open(tmpDir); + tmpDir = await setupRepo(Directory('test/assets/testrepo/')); + repo = Repository.open(tmpDir.path); blob = Blob.lookup(repo, blobSHA); }); tearDown(() async { blob.free(); repo.free(); - await Directory(tmpDir).delete(recursive: true); + await tmpDir.delete(recursive: true); }); group('Blob', () { diff --git a/test/branch_test.dart b/test/branch_test.dart index 37f9438..ce7d144 100644 --- a/test/branch_test.dart +++ b/test/branch_test.dart @@ -5,24 +5,18 @@ import 'helpers/util.dart'; void main() { late Repository repo; - final tmpDir = '${Directory.systemTemp.path}/branch_testrepo/'; + late Directory tmpDir; const lastCommit = '821ed6e80627b8769d170a293862f9fc60825226'; const featureCommit = '5aecfa0fb97eadaac050ccb99f03c3fb65460ad4'; setUp(() async { - if (await Directory(tmpDir).exists()) { - await Directory(tmpDir).delete(recursive: true); - } - await copyRepo( - from: Directory('test/assets/testrepo/'), - to: await Directory(tmpDir).create(), - ); - repo = Repository.open(tmpDir); + tmpDir = await setupRepo(Directory('test/assets/testrepo/')); + repo = Repository.open(tmpDir.path); }); tearDown(() async { repo.free(); - await Directory(tmpDir).delete(recursive: true); + await tmpDir.delete(recursive: true); }); group('Branch', () { diff --git a/test/checkout_test.dart b/test/checkout_test.dart index 2e1dd11..5c79e46 100644 --- a/test/checkout_test.dart +++ b/test/checkout_test.dart @@ -6,27 +6,21 @@ import 'helpers/util.dart'; void main() { late Repository repo; - final tmpDir = '${Directory.systemTemp.path}/checkout_testrepo/'; + late Directory tmpDir; setUp(() async { - if (await Directory(tmpDir).exists()) { - await Directory(tmpDir).delete(recursive: true); - } - await copyRepo( - from: Directory('test/assets/testrepo/'), - to: await Directory(tmpDir).create(), - ); - repo = Repository.open(tmpDir); + tmpDir = await setupRepo(Directory('test/assets/testrepo/')); + repo = Repository.open(tmpDir.path); }); tearDown(() async { repo.free(); - await Directory(tmpDir).delete(recursive: true); + await tmpDir.delete(recursive: true); }); group('Checkout', () { test('successfully checkouts head', () { - File('${tmpDir}feature_file').writeAsStringSync('edit'); + File('${tmpDir.path}/feature_file').writeAsStringSync('edit'); expect(repo.status, contains('feature_file')); repo.checkout(refName: 'HEAD', strategy: {GitCheckout.force}); @@ -73,18 +67,18 @@ void main() { }); test('successfully checkouts with alrenative directory', () { - final altDir = '${Directory.systemTemp.path}/alt_dir'; + final altDir = Directory('${Directory.systemTemp.path}/alt_dir'); // making sure there is no directory - if (Directory(altDir).existsSync()) { - Directory(altDir).deleteSync(recursive: true); + if (altDir.existsSync()) { + altDir.deleteSync(recursive: true); } - Directory(altDir).createSync(); - expect(Directory(altDir).listSync().length, 0); + altDir.createSync(); + expect(altDir.listSync().length, 0); - repo.checkout(refName: 'refs/heads/feature', directory: altDir); - expect(Directory(altDir).listSync().length, isNot(0)); + repo.checkout(refName: 'refs/heads/feature', directory: altDir.path); + expect(altDir.listSync().length, isNot(0)); - Directory(altDir).deleteSync(recursive: true); + altDir.deleteSync(recursive: true); }); test('successfully checkouts file with provided path', () { diff --git a/test/commit_test.dart b/test/commit_test.dart index 57448ae..8055e2f 100644 --- a/test/commit_test.dart +++ b/test/commit_test.dart @@ -5,25 +5,18 @@ import 'package:libgit2dart/libgit2dart.dart'; import 'helpers/util.dart'; void main() { - const mergeCommit = '78b8bf123e3952c970ae5c1ce0a3ea1d1336f6e8'; - late Repository repo; - final tmpDir = '${Directory.systemTemp.path}/commit_testrepo/'; + late Directory tmpDir; + const mergeCommit = '78b8bf123e3952c970ae5c1ce0a3ea1d1336f6e8'; const message = "Commit message.\n\nSome description.\n"; const tree = '7796359a96eb722939c24bafdb1afe9f07f2f628'; late Signature author; late Signature commiter; setUp(() async { - if (await Directory(tmpDir).exists()) { - await Directory(tmpDir).delete(recursive: true); - } - await copyRepo( - from: Directory('test/assets/testrepo/'), - to: await Directory(tmpDir).create(), - ); - repo = Repository.open(tmpDir); + tmpDir = await setupRepo(Directory('test/assets/testrepo/')); + repo = Repository.open(tmpDir.path); author = Signature.create( name: 'Author Name', email: 'author@email.com', @@ -40,7 +33,7 @@ void main() { author.free(); commiter.free(); repo.free(); - await Directory(tmpDir).delete(recursive: true); + await tmpDir.delete(recursive: true); }); group('Commit', () { diff --git a/test/diff_test.dart b/test/diff_test.dart index a03e587..c9dba9e 100644 --- a/test/diff_test.dart +++ b/test/diff_test.dart @@ -6,7 +6,7 @@ import 'helpers/util.dart'; void main() { late Repository repo; - final tmpDir = '${Directory.systemTemp.path}/diff_testrepo/'; + late Directory tmpDir; const indexToWorkdir = [ 'file_deleted', 'modified_file', @@ -76,19 +76,13 @@ index e69de29..c217c63 100644 """; setUp(() async { - if (await Directory(tmpDir).exists()) { - await Directory(tmpDir).delete(recursive: true); - } - await copyRepo( - from: Directory('test/assets/dirtyrepo/'), - to: await Directory(tmpDir).create(), - ); - repo = Repository.open(tmpDir); + tmpDir = await setupRepo(Directory('test/assets/dirtyrepo/')); + repo = Repository.open(tmpDir.path); }); tearDown(() async { repo.free(); - await Directory(tmpDir).delete(recursive: true); + await tmpDir.delete(recursive: true); }); group('Diff', () { @@ -198,7 +192,7 @@ index e69de29..c217c63 100644 'checks if diff can be applied to repository and successfully applies it', () { final diff = Diff.parse(patchText); - final file = File('${tmpDir}subdir/modified_file'); + final file = File('${tmpDir.path}/subdir/modified_file'); repo.reset('a763aa560953e7cfb87ccbc2f536d665aa4dff22', GitReset.hard); expect(file.readAsStringSync(), ''); diff --git a/test/helpers/util.dart b/test/helpers/util.dart index be86963..895a195 100644 --- a/test/helpers/util.dart +++ b/test/helpers/util.dart @@ -1,21 +1,26 @@ -import 'dart:async'; import 'dart:io'; import 'package:path/path.dart' as p; -Future copyRepo({ - required Directory from, - required Directory to, -}) async { +final tmpDir = Directory.systemTemp.createTempSync('testrepo'); + +Future setupRepo(Directory repoDir) async { + if (await tmpDir.exists()) { + await tmpDir.delete(recursive: true); + } + await copyRepo(from: repoDir, to: await tmpDir.create()); + return tmpDir; +} + +Future copyRepo({required Directory from, required Directory to}) async { await for (final entity in from.list()) { if (entity is Directory) { - late Directory newDir; + Directory newDir; if (p.basename(entity.path) == '.gitdir') { newDir = Directory(p.join(to.absolute.path, '.git')); } else { newDir = Directory(p.join(to.absolute.path, p.basename(entity.path))); } - await newDir.create(); - await copyRepo(from: entity.absolute, to: newDir); + await copyRepo(from: entity.absolute, to: await newDir.create()); } else if (entity is File) { if (p.basename(entity.path) == 'gitignore') { await entity.copy(p.join(to.path, '.gitignore')); diff --git a/test/index_test.dart b/test/index_test.dart index 6e3d629..a90dd81 100644 --- a/test/index_test.dart +++ b/test/index_test.dart @@ -7,24 +7,18 @@ import 'helpers/util.dart'; void main() { late Repository repo; late Index index; - final tmpDir = '${Directory.systemTemp.path}/index_testrepo/'; + late Directory tmpDir; setUp(() async { - if (await Directory(tmpDir).exists()) { - await Directory(tmpDir).delete(recursive: true); - } - await copyRepo( - from: Directory('test/assets/testrepo/'), - to: await Directory(tmpDir).create(), - ); - repo = Repository.open(tmpDir); + tmpDir = await setupRepo(Directory('test/assets/testrepo/')); + repo = Repository.open(tmpDir.path); index = repo.index; }); tearDown(() async { index.free(); repo.free(); - await Directory(tmpDir).delete(recursive: true); + await tmpDir.delete(recursive: true); }); group('Index', () { @@ -136,7 +130,7 @@ void main() { test('writes to disk', () { expect(index.length, 4); - File('$tmpDir/new_file').createSync(); + File('${tmpDir.path}/new_file').createSync(); index.add('new_file'); index.write(); diff --git a/test/merge_test.dart b/test/merge_test.dart index 202033a..f29bb81 100644 --- a/test/merge_test.dart +++ b/test/merge_test.dart @@ -6,22 +6,16 @@ import 'helpers/util.dart'; void main() { late Repository repo; - final tmpDir = '${Directory.systemTemp.path}/mergerepo/'; + late Directory tmpDir; setUp(() async { - if (await Directory(tmpDir).exists()) { - await Directory(tmpDir).delete(recursive: true); - } - await copyRepo( - from: Directory('test/assets/mergerepo/'), - to: await Directory(tmpDir).create(), - ); - repo = Repository.open(tmpDir); + tmpDir = await setupRepo(Directory('test/assets/mergerepo/')); + repo = Repository.open(tmpDir.path); }); tearDown(() async { repo.free(); - await Directory(tmpDir).delete(recursive: true); + await tmpDir.delete(recursive: true); }); group('Merge', () { diff --git a/test/odb_test.dart b/test/odb_test.dart index 0c5d778..52d2508 100644 --- a/test/odb_test.dart +++ b/test/odb_test.dart @@ -5,29 +5,25 @@ import 'package:libgit2dart/libgit2dart.dart'; import 'helpers/util.dart'; void main() { - const lastCommit = '78b8bf123e3952c970ae5c1ce0a3ea1d1336f6e8'; late Repository repo; - final tmpDir = '${Directory.systemTemp.path}/odb_testrepo/'; + late Directory tmpDir; + const lastCommit = '78b8bf123e3952c970ae5c1ce0a3ea1d1336f6e8'; setUp(() async { - if (await Directory(tmpDir).exists()) { - await Directory(tmpDir).delete(recursive: true); - } - await copyRepo( - from: Directory('test/assets/testrepo/'), - to: await Directory(tmpDir).create(), - ); - repo = Repository.open(tmpDir); + tmpDir = await setupRepo(Directory('test/assets/testrepo/')); + repo = Repository.open(tmpDir.path); }); tearDown(() async { repo.free(); - await Directory(tmpDir).delete(recursive: true); + await tmpDir.delete(recursive: true); }); + group('Odb', () { test('successfully initializes', () { - expect(repo.odb, isA()); - repo.odb.free(); + final odb = repo.odb; + expect(odb, isA()); + odb.free(); }); test('finds object by short oid', () { diff --git a/test/oid_test.dart b/test/oid_test.dart index 3f52278..0ab9e5c 100644 --- a/test/oid_test.dart +++ b/test/oid_test.dart @@ -5,26 +5,20 @@ import 'package:libgit2dart/libgit2dart.dart'; import 'helpers/util.dart'; void main() { + late Repository repo; + late Directory tmpDir; const sha = '78b8bf123e3952c970ae5c1ce0a3ea1d1336f6e8'; const biggerSha = '78b8bf123e3952c970ae5c1ce0a3ea1d1336f6e9'; const lesserSha = '78b8bf123e3952c970ae5c1ce0a3ea1d1336f6e7'; - late Repository repo; - final tmpDir = '${Directory.systemTemp.path}/oid_testrepo/'; setUp(() async { - if (await Directory(tmpDir).exists()) { - await Directory(tmpDir).delete(recursive: true); - } - await copyRepo( - from: Directory('test/assets/testrepo/'), - to: await Directory(tmpDir).create(), - ); - repo = Repository.open(tmpDir); + tmpDir = await setupRepo(Directory('test/assets/testrepo/')); + repo = Repository.open(tmpDir.path); }); tearDown(() async { repo.free(); - await Directory(tmpDir).delete(recursive: true); + await tmpDir.delete(recursive: true); }); group('Oid', () { diff --git a/test/patch_test.dart b/test/patch_test.dart index 499bdc7..98ae7a0 100644 --- a/test/patch_test.dart +++ b/test/patch_test.dart @@ -5,7 +5,7 @@ import 'helpers/util.dart'; void main() { late Repository repo; - final tmpDir = '${Directory.systemTemp.path}/patch_testrepo/'; + late Directory tmpDir; const oldBlob = ''; const newBlob = 'Feature edit\n'; const path = 'feature_file'; @@ -39,19 +39,13 @@ index e69de29..0000000 """; setUp(() async { - if (await Directory(tmpDir).exists()) { - await Directory(tmpDir).delete(recursive: true); - } - await copyRepo( - from: Directory('test/assets/testrepo/'), - to: await Directory(tmpDir).create(), - ); - repo = Repository.open(tmpDir); + tmpDir = await setupRepo(Directory('test/assets/testrepo/')); + repo = Repository.open(tmpDir.path); }); tearDown(() async { repo.free(); - await Directory(tmpDir).delete(recursive: true); + await tmpDir.delete(recursive: true); }); group('Patch', () { diff --git a/test/reference_test.dart b/test/reference_test.dart index 792fa0b..f2c7235 100644 --- a/test/reference_test.dart +++ b/test/reference_test.dart @@ -6,25 +6,19 @@ import 'package:libgit2dart/libgit2dart.dart'; import 'helpers/util.dart'; void main() { + late Repository repo; + late Directory tmpDir; const lastCommit = '821ed6e80627b8769d170a293862f9fc60825226'; const newCommit = 'c68ff54aabf660fcdd9a2838d401583fe31249e3'; - late Repository repo; - final tmpDir = '${Directory.systemTemp.path}/ref_testrepo/'; setUp(() async { - if (await Directory(tmpDir).exists()) { - await Directory(tmpDir).delete(recursive: true); - } - await copyRepo( - from: Directory('test/assets/testrepo/'), - to: await Directory(tmpDir).create(), - ); - repo = Repository.open(tmpDir); + tmpDir = await setupRepo(Directory('test/assets/testrepo/')); + repo = Repository.open(tmpDir.path); }); tearDown(() async { repo.free(); - await Directory(tmpDir).delete(recursive: true); + await tmpDir.delete(recursive: true); }); group('Reference', () { @@ -516,7 +510,7 @@ void main() { }); test('successfully compresses references', () { - final packedRefsFile = File('$tmpDir.git/packed-refs'); + final packedRefsFile = File('${tmpDir.path}/.git/packed-refs'); expect(packedRefsFile.existsSync(), false); final oldRefs = repo.references.list(); diff --git a/test/reflog_test.dart b/test/reflog_test.dart index e20b17c..7e06ee5 100644 --- a/test/reflog_test.dart +++ b/test/reflog_test.dart @@ -8,17 +8,11 @@ void main() { late Repository repo; late RefLog reflog; late Reference head; - final tmpDir = '${Directory.systemTemp.path}/reflog_testrepo/'; + late Directory tmpDir; setUp(() async { - if (await Directory(tmpDir).exists()) { - await Directory(tmpDir).delete(recursive: true); - } - await copyRepo( - from: Directory('test/assets/testrepo/'), - to: await Directory(tmpDir).create(), - ); - repo = Repository.open(tmpDir); + tmpDir = await setupRepo(Directory('test/assets/testrepo/')); + repo = Repository.open(tmpDir.path); head = repo.head; reflog = RefLog(head); }); @@ -27,8 +21,9 @@ void main() { reflog.free(); head.free(); repo.free(); - await Directory(tmpDir).delete(recursive: true); + await tmpDir.delete(recursive: true); }); + group('RefLog', () { test('initializes successfully', () { expect(reflog, isA()); diff --git a/test/remote_test.dart b/test/remote_test.dart index 7f72193..ab6164a 100644 --- a/test/remote_test.dart +++ b/test/remote_test.dart @@ -5,24 +5,18 @@ import 'helpers/util.dart'; void main() { late Repository repo; - final tmpDir = '${Directory.systemTemp.path}/remote_testrepo/'; + late Directory tmpDir; const remoteName = 'origin'; const remoteUrl = 'git://github.com/SkinnyMind/libgit2dart.git'; setUp(() async { - if (await Directory(tmpDir).exists()) { - await Directory(tmpDir).delete(recursive: true); - } - await copyRepo( - from: Directory('test/assets/testrepo/'), - to: await Directory(tmpDir).create(), - ); - repo = Repository.open(tmpDir); + tmpDir = await setupRepo(Directory('test/assets/testrepo/')); + repo = Repository.open(tmpDir.path); }); tearDown(() async { repo.free(); - await Directory(tmpDir).delete(recursive: true); + await tmpDir.delete(recursive: true); }); group('Remote', () { @@ -229,18 +223,19 @@ void main() { }); test('successfully pushes', () async { - final originDir = '${Directory.systemTemp.path}/origin_testrepo/'; + final originDir = + Directory('${Directory.systemTemp.path}/origin_testrepo'); - if (await Directory(originDir).exists()) { - await Directory(originDir).delete(recursive: true); + if (await originDir.exists()) { + await originDir.delete(recursive: true); } await copyRepo( from: Directory('test/assets/empty_bare.git/'), - to: await Directory(originDir).create(), + to: await originDir.create(), ); - final originRepo = Repository.open(originDir); + final originRepo = Repository.open(originDir.path); - repo.remotes.create(name: 'local', url: originDir); + repo.remotes.create(name: 'local', url: originDir.path); final remote = repo.remotes['local']; remote.push(['refs/heads/master']); @@ -251,7 +246,7 @@ void main() { remote.free(); originRepo.free(); - await Directory(originDir).delete(recursive: true); + originDir.delete(recursive: true); }); }); } diff --git a/test/repository_test.dart b/test/repository_test.dart index d5ef3c0..3aaf3f0 100644 --- a/test/repository_test.dart +++ b/test/repository_test.dart @@ -15,30 +15,30 @@ void main() { }); group('.init()', () { - final initDir = '${Directory.systemTemp.path}/init_repo/'; + final initDir = Directory('${Directory.systemTemp.path}/init_repo'); setUp(() async { - if (await Directory(initDir).exists()) { - await Directory(initDir).delete(recursive: true); + if (await initDir.exists()) { + await initDir.delete(recursive: true); } else { - await Directory(initDir).create(); + await initDir.create(); } }); tearDown(() async { repo.free(); - await Directory(initDir).delete(recursive: true); + await initDir.delete(recursive: true); }); test('successfully creates new bare repo at provided path', () { - repo = Repository.init(initDir, isBare: true); - expect(repo.path, initDir); + repo = Repository.init(initDir.path, isBare: true); + expect(repo.path, '${initDir.path}/'); expect(repo.isBare, true); }); test('successfully creates new standard repo at provided path', () { - repo = Repository.init(initDir); - expect(repo.path, '$initDir.git/'); + repo = Repository.init(initDir.path); + expect(repo.path, '${initDir.path}/.git/'); expect(repo.isBare, false); expect(repo.isEmpty, true); }); @@ -153,22 +153,16 @@ void main() { const lastCommit = '821ed6e80627b8769d170a293862f9fc60825226'; const featureCommit = '5aecfa0fb97eadaac050ccb99f03c3fb65460ad4'; - final tmpDir = '${Directory.systemTemp.path}/testrepo/'; + late Directory tmpDir; setUp(() async { - if (await Directory(tmpDir).exists()) { - await Directory(tmpDir).delete(recursive: true); - } - await copyRepo( - from: Directory('test/assets/testrepo/'), - to: await Directory(tmpDir).create(), - ); - repo = Repository.open(tmpDir); + tmpDir = await setupRepo(Directory('test/assets/testrepo/')); + repo = Repository.open(tmpDir.path); }); tearDown(() async { repo.free(); - await Directory(tmpDir).delete(recursive: true); + await tmpDir.delete(recursive: true); }); test('returns config for repository', () { @@ -203,7 +197,7 @@ void main() { group('.discover()', () { test('discovers repository', () async { - final subDir = '${tmpDir}subdir1/subdir2/'; + final subDir = '${tmpDir.path}/subdir1/subdir2/'; await Directory(subDir).create(recursive: true); expect(Repository.discover(subDir), repo.path); }); @@ -226,13 +220,14 @@ void main() { }); test('successfully sets working directory', () { - final tmpWorkDir = '${Directory.systemTemp.path}/tmp_work_dir/'; - Directory(tmpWorkDir).createSync(); + final tmpWorkDir = + Directory('${Directory.systemTemp.path}/tmp_work_dir'); + tmpWorkDir.createSync(); - repo.setWorkdir(tmpWorkDir); - expect(repo.workdir, tmpWorkDir); + repo.setWorkdir(tmpWorkDir.path); + expect(repo.workdir, '${tmpWorkDir.path}/'); - Directory(tmpWorkDir).deleteSync(); + tmpWorkDir.deleteSync(); }); group('setHead', () { @@ -341,7 +336,7 @@ void main() { }); test('returns status of a repository', () { - File('${tmpDir}new_file.txt').createSync(); + File('${tmpDir.path}/new_file.txt').createSync(); final index = repo.index; index.remove('file'); index.add('new_file.txt'); diff --git a/test/reset_test.dart b/test/reset_test.dart index e2d700b..b42fa50 100644 --- a/test/reset_test.dart +++ b/test/reset_test.dart @@ -6,24 +6,19 @@ import 'helpers/util.dart'; void main() { late Repository repo; - final tmpDir = '${Directory.systemTemp.path}/reset_testrepo/'; + late Directory tmpDir; + late File file; const sha = '6cbc22e509d72758ab4c8d9f287ea846b90c448b'; - final file = File('${tmpDir}feature_file'); setUp(() async { - if (await Directory(tmpDir).exists()) { - await Directory(tmpDir).delete(recursive: true); - } - await copyRepo( - from: Directory('test/assets/testrepo/'), - to: await Directory(tmpDir).create(), - ); - repo = Repository.open(tmpDir); + tmpDir = await setupRepo(Directory('test/assets/testrepo/')); + file = File('${tmpDir.path}/feature_file'); + repo = Repository.open(tmpDir.path); }); tearDown(() async { repo.free(); - await Directory(tmpDir).delete(recursive: true); + await tmpDir.delete(recursive: true); }); group('Reset', () { diff --git a/test/revparse_test.dart b/test/revparse_test.dart index 0658f87..c51fe2e 100644 --- a/test/revparse_test.dart +++ b/test/revparse_test.dart @@ -6,24 +6,18 @@ import 'helpers/util.dart'; void main() { late Repository repo; - final tmpDir = '${Directory.systemTemp.path}/revparse_testrepo/'; + late Directory tmpDir; const headSHA = '821ed6e80627b8769d170a293862f9fc60825226'; const parentSHA = '78b8bf123e3952c970ae5c1ce0a3ea1d1336f6e8'; setUp(() async { - if (await Directory(tmpDir).exists()) { - await Directory(tmpDir).delete(recursive: true); - } - await copyRepo( - from: Directory('test/assets/testrepo/'), - to: await Directory(tmpDir).create(), - ); - repo = Repository.open(tmpDir); + tmpDir = await setupRepo(Directory('test/assets/testrepo/')); + repo = Repository.open(tmpDir.path); }); tearDown(() async { repo.free(); - await Directory(tmpDir).delete(recursive: true); + await tmpDir.delete(recursive: true); }); group('revParse', () { diff --git a/test/revwalk_test.dart b/test/revwalk_test.dart index a4942f5..fd6da1e 100644 --- a/test/revwalk_test.dart +++ b/test/revwalk_test.dart @@ -5,6 +5,8 @@ import 'package:libgit2dart/libgit2dart.dart'; import 'helpers/util.dart'; void main() { + late Repository repo; + late Directory tmpDir; const log = [ '78b8bf123e3952c970ae5c1ce0a3ea1d1336f6e8', 'c68ff54aabf660fcdd9a2838d401583fe31249e3', @@ -12,24 +14,17 @@ void main() { '6cbc22e509d72758ab4c8d9f287ea846b90c448b', 'f17d0d48eae3aa08cecf29128a35e310c97b3521', ]; - late Repository repo; - final tmpDir = '${Directory.systemTemp.path}/revwalk_testrepo/'; setUp(() async { - if (await Directory(tmpDir).exists()) { - await Directory(tmpDir).delete(recursive: true); - } - await copyRepo( - from: Directory('test/assets/testrepo/'), - to: await Directory(tmpDir).create(), - ); - repo = Repository.open(tmpDir); + tmpDir = await setupRepo(Directory('test/assets/testrepo/')); + repo = Repository.open(tmpDir.path); }); tearDown(() async { repo.free(); - await Directory(tmpDir).delete(recursive: true); + await tmpDir.delete(recursive: true); }); + group('RevWalk', () { test('returns list of commits with default sorting', () { final walker = RevWalk(repo); diff --git a/test/stash_test.dart b/test/stash_test.dart index 79f8d2c..d38df7f 100644 --- a/test/stash_test.dart +++ b/test/stash_test.dart @@ -5,18 +5,12 @@ import 'helpers/util.dart'; void main() { late Repository repo; + late Directory tmpDir; late Signature stasher; - final tmpDir = '${Directory.systemTemp.path}/stash_testrepo/'; setUp(() async { - if (await Directory(tmpDir).exists()) { - await Directory(tmpDir).delete(recursive: true); - } - await copyRepo( - from: Directory('test/assets/testrepo/'), - to: await Directory(tmpDir).create(), - ); - repo = Repository.open(tmpDir); + tmpDir = await setupRepo(Directory('test/assets/testrepo/')); + repo = Repository.open(tmpDir.path); stasher = Signature.create( name: 'Stasher', email: 'stasher@email.com', @@ -26,12 +20,12 @@ void main() { tearDown(() async { stasher.free(); repo.free(); - await Directory(tmpDir).delete(recursive: true); + await tmpDir.delete(recursive: true); }); group('Stash', () { test('successfully saves changes to stash', () { - File('${tmpDir}file').writeAsStringSync( + File('${tmpDir.path}/file').writeAsStringSync( 'edit', mode: FileMode.append, ); @@ -41,7 +35,7 @@ void main() { }); test('successfully applies changes from stash', () { - File('${tmpDir}file').writeAsStringSync( + File('${tmpDir.path}/file').writeAsStringSync( 'edit', mode: FileMode.append, ); @@ -54,7 +48,7 @@ void main() { }); test('successfully drops stash', () { - File('${tmpDir}file').writeAsStringSync( + File('${tmpDir.path}/file').writeAsStringSync( 'edit', mode: FileMode.append, ); @@ -66,7 +60,7 @@ void main() { }); test('successfully pops from stash', () { - File('${tmpDir}file').writeAsStringSync( + File('${tmpDir.path}/file').writeAsStringSync( 'edit', mode: FileMode.append, ); @@ -78,7 +72,7 @@ void main() { }); test('returns list of stashes', () { - File('${tmpDir}file').writeAsStringSync( + File('${tmpDir.path}/file').writeAsStringSync( 'edit', mode: FileMode.append, ); diff --git a/test/tag_test.dart b/test/tag_test.dart index cdb1548..ae81618 100644 --- a/test/tag_test.dart +++ b/test/tag_test.dart @@ -7,25 +7,19 @@ import 'helpers/util.dart'; void main() { late Repository repo; late Tag tag; - final tmpDir = '${Directory.systemTemp.path}/tag_testrepo/'; + late Directory tmpDir; const tagSHA = 'f0fdbf506397e9f58c59b88dfdd72778ec06cc0c'; setUp(() async { - if (await Directory(tmpDir).exists()) { - await Directory(tmpDir).delete(recursive: true); - } - await copyRepo( - from: Directory('test/assets/testrepo/'), - to: await Directory(tmpDir).create(), - ); - repo = Repository.open(tmpDir); + tmpDir = await setupRepo(Directory('test/assets/testrepo/')); + repo = Repository.open(tmpDir.path); tag = Tag.lookup(repo, tagSHA); }); tearDown(() async { tag.free(); repo.free(); - await Directory(tmpDir).delete(recursive: true); + await tmpDir.delete(recursive: true); }); group('Tag', () { diff --git a/test/tree_test.dart b/test/tree_test.dart index 38c444e..ad683fe 100644 --- a/test/tree_test.dart +++ b/test/tree_test.dart @@ -7,26 +7,20 @@ import 'helpers/util.dart'; void main() { late Repository repo; late Tree tree; - final tmpDir = '${Directory.systemTemp.path}/tree_testrepo/'; + late Directory tmpDir; const treeSHA = 'a8ae3dd59e6e1802c6f78e05e301bfd57c9f334f'; const fileSHA = '1377554ebea6f98a2c748183bc5a96852af12ac2'; setUp(() async { - if (await Directory(tmpDir).exists()) { - await Directory(tmpDir).delete(recursive: true); - } - await copyRepo( - from: Directory('test/assets/testrepo/'), - to: await Directory(tmpDir).create(), - ); - repo = Repository.open(tmpDir); + tmpDir = await setupRepo(Directory('test/assets/testrepo/')); + repo = Repository.open(tmpDir.path); tree = Tree.lookup(repo, treeSHA); }); tearDown(() async { tree.free(); repo.free(); - await Directory(tmpDir).delete(recursive: true); + await tmpDir.delete(recursive: true); }); group('Tree', () { diff --git a/test/treebuilder_test.dart b/test/treebuilder_test.dart index 232dea3..cb090a8 100644 --- a/test/treebuilder_test.dart +++ b/test/treebuilder_test.dart @@ -7,25 +7,19 @@ import 'helpers/util.dart'; void main() { late Repository repo; late Tree tree; - final tmpDir = '${Directory.systemTemp.path}/treebuilder_testrepo/'; + late Directory tmpDir; const treeSHA = 'a8ae3dd59e6e1802c6f78e05e301bfd57c9f334f'; setUp(() async { - if (await Directory(tmpDir).exists()) { - await Directory(tmpDir).delete(recursive: true); - } - await copyRepo( - from: Directory('test/assets/testrepo/'), - to: await Directory(tmpDir).create(), - ); - repo = Repository.open(tmpDir); + tmpDir = await setupRepo(Directory('test/assets/testrepo/')); + repo = Repository.open(tmpDir.path); tree = Tree.lookup(repo, treeSHA); }); tearDown(() async { tree.free(); repo.free(); - await Directory(tmpDir).delete(recursive: true); + await tmpDir.delete(recursive: true); }); group('TreeBuilder', () { diff --git a/test/worktree_test.dart b/test/worktree_test.dart index 00d476d..8c8e168 100644 --- a/test/worktree_test.dart +++ b/test/worktree_test.dart @@ -5,30 +5,22 @@ import 'helpers/util.dart'; void main() { late Repository repo; - final tmpDir = '${Directory.systemTemp.path}/worktree_testrepo/'; - final worktreeDir = '${Directory.systemTemp.path}/worktree'; + late Directory tmpDir; + final worktreeDir = Directory('${Directory.systemTemp.path}/worktree'); setUp(() async { - if (await Directory(tmpDir).exists()) { - await Directory(tmpDir).delete(recursive: true); + if (await worktreeDir.exists()) { + await worktreeDir.delete(recursive: true); } - - if (await Directory(worktreeDir).exists()) { - await Directory(worktreeDir).delete(recursive: true); - } - - await copyRepo( - from: Directory('test/assets/testrepo/'), - to: await Directory(tmpDir).create(), - ); - repo = Repository.open(tmpDir); + tmpDir = await setupRepo(Directory('test/assets/testrepo/')); + repo = Repository.open(tmpDir.path); }); tearDown(() async { repo.free(); - await Directory(tmpDir).delete(recursive: true); - if (await Directory(worktreeDir).exists()) { - await Directory(worktreeDir).delete(recursive: true); + await tmpDir.delete(recursive: true); + if (await worktreeDir.exists()) { + await worktreeDir.delete(recursive: true); } }); @@ -40,14 +32,14 @@ void main() { final worktree = Worktree.create( repo: repo, name: worktreeName, - path: worktreeDir, + path: worktreeDir.path, ); expect(Worktree.list(repo), [worktreeName]); expect(repo.branches.list(), contains(worktreeName)); expect(worktree.name, worktreeName); - expect(worktree.path, worktreeDir); - expect(File('$worktreeDir/.git').existsSync(), true); + expect(worktree.path, worktreeDir.path); + expect(File('${worktreeDir.path}/.git').existsSync(), true); worktree.free(); }); @@ -64,7 +56,7 @@ void main() { final worktree = Worktree.create( repo: repo, name: worktreeName, - path: worktreeDir, + path: worktreeDir.path, ref: worktreeRef, ); @@ -73,7 +65,7 @@ void main() { expect(repo.branches.list(), isNot(contains(worktreeName))); expect(worktreeBranch.isCheckedOut, true); - Directory(worktreeDir).deleteSync(recursive: true); + worktreeDir.deleteSync(recursive: true); worktree.prune(); expect(Worktree.list(repo), []); @@ -93,11 +85,11 @@ void main() { final worktree = Worktree.create( repo: repo, name: worktreeName, - path: worktreeDir, + path: worktreeDir.path, ); expect(Worktree.list(repo), [worktreeName]); - Directory(worktreeDir).deleteSync(recursive: true); + worktreeDir.deleteSync(recursive: true); worktree.prune(); expect(Worktree.list(repo), []);