generated from actions/javascript-action
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathgetOrCreateBranch.test.js
72 lines (65 loc) · 1.64 KB
/
getOrCreateBranch.test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
const getOrCreateBranch = require('./getOrCreateBranch');
const client = {
git: {
getRef: jest.fn(),
createRef: jest.fn(),
}
};
const run = () => {
return getOrCreateBranch({
client,
owner: 'my-org',
repo: 'my-repo',
branch: 'main',
default_branch: 'main',
log: () => {},
});
};
describe('getOrCreateBranch', () => {
afterEach(() => {
jest.clearAllMocks();
});
it('get already created branch', async () => {
client.git.getRef.mockResolvedValue({
data: {
ref: 'refs/heads/main',
object: {
sha: '322224cf7844e576400454f15db4164d42d81c12'
}
}
});
const ref = await run();
expect(client.git.getRef).toHaveBeenCalled();
expect(ref.ref).toBe('refs/heads/main');
});
it('create branch and get its data', async () => {
client.git.getRef
.mockImplementationOnce(() => {
return Promise.reject(Error('Not Found'));
})
.mockImplementationOnce(() => {
return {
data: {
ref: 'refs/heads/main',
object: {
sha: '322224cf7844e576400454f15db4164d42d81c12'
}
}
}
}
);
client.git.createRef.mockResolvedValue({
data: {
ref: 'refs/heads/my-new-branch',
object: {
sha: '322224cf7844e576400454f15db4164d42d81c12'
}
}
});
const ref = await run();
expect(client.git.getRef).toHaveBeenCalled();
expect(client.git.createRef).toHaveBeenCalled();
expect(ref.ref).toBe('refs/heads/my-new-branch');
expect(ref.object.sha).toBe('322224cf7844e576400454f15db4164d42d81c12');
});
});