Skip to content

Commit a5e4df7

Browse files
committed
test: idempotent test
1 parent d4f1bf4 commit a5e4df7

1 file changed

Lines changed: 19 additions & 0 deletions

File tree

test/credential.test.ts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,4 +57,23 @@ describe('credential', () => {
5757
expect(restoredRemoteUrl).toBe(originalRemoteUrl);
5858
expect(restoredRemoteUrl.includes(exampleToken)).toBe(false);
5959
});
60+
61+
test('methods are idempotent', async () => {
62+
const originalRemoteUrl = await getRemoteUrl(dir, defaultGitInfo.remote);
63+
await credentialOn(dir, originalRemoteUrl, defaultGitInfo.gitUserName, exampleToken, defaultGitInfo.remote);
64+
const newRemoteUrl1 = await getRemoteUrl(dir, defaultGitInfo.remote);
65+
expect(newRemoteUrl1.includes(exampleToken)).toBe(true);
66+
await credentialOn(dir, newRemoteUrl1, defaultGitInfo.gitUserName, exampleToken, defaultGitInfo.remote);
67+
await credentialOn(dir, newRemoteUrl1, defaultGitInfo.gitUserName, exampleToken, defaultGitInfo.remote);
68+
await credentialOn(dir, newRemoteUrl1, defaultGitInfo.gitUserName, exampleToken, defaultGitInfo.remote);
69+
const newRemoteUrl2 = await getRemoteUrl(dir, defaultGitInfo.remote);
70+
expect(newRemoteUrl2.includes(exampleToken)).toBe(true);
71+
expect(newRemoteUrl2).toBe(newRemoteUrl1);
72+
await credentialOff(dir, defaultGitInfo.remote);
73+
await credentialOff(dir, defaultGitInfo.remote);
74+
await credentialOff(dir, defaultGitInfo.remote);
75+
const restoredRemoteUrl = await getRemoteUrl(dir, defaultGitInfo.remote);
76+
expect(restoredRemoteUrl).toBe(originalRemoteUrl);
77+
expect(restoredRemoteUrl.includes(exampleToken)).toBe(false);
78+
});
6079
});

0 commit comments

Comments
 (0)