mirror of
https://github.com/SkinnyMind/libgit2dart.git
synced 2025-05-04 20:29:08 -04:00
feat(reference): add ability to set target
This commit is contained in:
parent
58fa54f24a
commit
371d52b7f8
5 changed files with 147 additions and 15 deletions
|
@ -10,6 +10,7 @@ import 'helpers/util.dart';
|
|||
|
||||
void main() {
|
||||
const lastCommit = '78b8bf123e3952c970ae5c1ce0a3ea1d1336f6e8';
|
||||
const newCommit = 'c68ff54aabf660fcdd9a2838d401583fe31249e3';
|
||||
|
||||
group('Reference', () {
|
||||
late final Repository repo;
|
||||
|
@ -343,6 +344,50 @@ void main() {
|
|||
ref.free();
|
||||
});
|
||||
|
||||
group('setTarget()', () {
|
||||
test('successfully sets target with SHA hex', () {
|
||||
final ref = repo.getReference('refs/heads/master');
|
||||
ref.setTarget(newCommit);
|
||||
expect(ref.target.sha, newCommit);
|
||||
|
||||
// change back for tests purpose
|
||||
ref.setTarget(lastCommit);
|
||||
ref.free();
|
||||
});
|
||||
|
||||
test('successfully sets target with short SHA hex', () {
|
||||
final ref = repo.getReference('refs/heads/master');
|
||||
ref.setTarget(newCommit.substring(0, 5));
|
||||
expect(ref.target.sha, newCommit);
|
||||
|
||||
// change back for tests purpose
|
||||
ref.setTarget(lastCommit);
|
||||
ref.free();
|
||||
});
|
||||
|
||||
test('successfully sets symbolic target', () {
|
||||
final ref = repo.getReference('HEAD');
|
||||
expect(ref.target.sha, lastCommit);
|
||||
|
||||
ref.setTarget('refs/heads/feature');
|
||||
expect(ref.target.sha, '5aecfa0fb97eadaac050ccb99f03c3fb65460ad4');
|
||||
|
||||
// change back for tests purpose
|
||||
ref.setTarget('refs/heads/master');
|
||||
ref.free();
|
||||
});
|
||||
|
||||
test('throws on invalid target', () {
|
||||
final ref = repo.getReference('HEAD');
|
||||
expect(
|
||||
() => ref.setTarget('refs/heads/invalid~'),
|
||||
throwsA(isA<LibGit2Error>()),
|
||||
);
|
||||
|
||||
ref.free();
|
||||
});
|
||||
});
|
||||
|
||||
group('isValidName()', () {
|
||||
test('returns true for valid names', () {
|
||||
expect(Reference.isValidName('HEAD'), true);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue