Update Action to use new ProjectsV2 api

ProjectsNext API is going to be deprecated in favour of new ProjectsV2.
This commit is contained in:
Lukasz Warchol
2022-05-19 16:16:43 +00:00
committed by GitHub
parent 8e43a9d0d7
commit 8bc56cd807
3 changed files with 81 additions and 76 deletions

View File

@@ -1,5 +1,6 @@
import * as core from '@actions/core'
import * as github from '@actions/github'
import {addToProject, mustGetOwnerTypeQuery} from '../src/add-to-project'
describe('addToProject', () => {
@@ -29,18 +30,18 @@ describe('addToProject', () => {
test: /getProject/,
return: {
organization: {
projectNext: {
id: 'project-next-id'
projectV2: {
id: 'project-id'
}
}
}
},
{
test: /addProjectNextItem/,
test: /addProjectV2ItemById/,
return: {
addProjectNextItem: {
projectNextItem: {
id: 'project-next-item-id'
addProjectV2ItemById: {
projectItem: {
id: 'project-item-id'
}
}
}
@@ -49,7 +50,7 @@ describe('addToProject', () => {
await addToProject()
expect(outputs.itemId).toEqual('project-next-item-id')
expect(outputs.itemId).toEqual('project-item-id')
})
test('adds matching issues with a label filter without label-operator', async () => {
@@ -71,18 +72,18 @@ describe('addToProject', () => {
test: /getProject/,
return: {
organization: {
projectNext: {
id: 'project-next-id'
projectV2: {
id: 'project-id'
}
}
}
},
{
test: /addProjectNextItem/,
test: /addProjectV2ItemById/,
return: {
addProjectNextItem: {
projectNextItem: {
id: 'project-next-item-id'
addProjectV2ItemById: {
projectItem: {
id: 'project-item-id'
}
}
}
@@ -91,7 +92,7 @@ describe('addToProject', () => {
await addToProject()
expect(outputs.itemId).toEqual('project-next-item-id')
expect(outputs.itemId).toEqual('project-item-id')
})
test('adds matching pull-requests with a label filter without label-operator', async () => {
@@ -114,18 +115,18 @@ describe('addToProject', () => {
test: /getProject/,
return: {
organization: {
projectNext: {
id: 'project-next-id'
projectV2: {
id: 'project-id'
}
}
}
},
{
test: /addProjectNextItem/,
test: /addProjectV2ItemById/,
return: {
addProjectNextItem: {
projectNextItem: {
id: 'project-next-item-id'
addProjectV2ItemById: {
projectItem: {
id: 'project-item-id'
}
}
}
@@ -134,7 +135,7 @@ describe('addToProject', () => {
await addToProject()
expect(outputs.itemId).toEqual('project-next-item-id')
expect(outputs.itemId).toEqual('project-item-id')
})
test('does not add un-matching issues with a label filter without label-operator', async () => {
@@ -178,18 +179,18 @@ describe('addToProject', () => {
test: /getProject/,
return: {
organization: {
projectNext: {
id: 'project-next-id'
projectV2: {
id: 'project-id'
}
}
}
},
{
test: /addProjectNextItem/,
test: /addProjectV2ItemById/,
return: {
addProjectNextItem: {
projectNextItem: {
id: 'project-next-item-id'
addProjectV2ItemById: {
projectItem: {
id: 'project-item-id'
}
}
}
@@ -198,7 +199,7 @@ describe('addToProject', () => {
await addToProject()
expect(outputs.itemId).toEqual('project-next-item-id')
expect(outputs.itemId).toEqual('project-item-id')
})
test('does not add un-matching issues with labels filter with AND label-operator', async () => {
@@ -242,18 +243,18 @@ describe('addToProject', () => {
test: /getProject/,
return: {
organization: {
projectNext: {
id: 'project-next-id'
projectV2: {
id: 'project-id'
}
}
}
},
{
test: /addProjectNextItem/,
test: /addProjectV2ItemById/,
return: {
addProjectNextItem: {
projectNextItem: {
id: 'project-next-item-id'
addProjectV2ItemById: {
projectItem: {
id: 'project-item-id'
}
}
}
@@ -266,7 +267,7 @@ describe('addToProject', () => {
expect(gqlMock).toHaveBeenCalled()
expect(infoSpy).not.toHaveBeenCalled()
expect(outputs.itemId).toEqual('project-next-item-id')
expect(outputs.itemId).toEqual('project-item-id')
})
test('does not add un-matching issues with multiple label filters', async () => {
@@ -312,18 +313,18 @@ describe('addToProject', () => {
test: /getProject/,
return: {
organization: {
projectNext: {
id: 'project-next-id'
projectV2: {
id: 'project-id'
}
}
}
},
{
test: /addProjectNextItem/,
test: /addProjectV2ItemById/,
return: {
addProjectNextItem: {
projectNextItem: {
id: 'project-next-item-id'
addProjectV2ItemById: {
projectItem: {
id: 'project-item-id'
}
}
}
@@ -336,7 +337,7 @@ describe('addToProject', () => {
expect(gqlMock).toHaveBeenCalled()
expect(infoSpy).not.toHaveBeenCalled()
expect(outputs.itemId).toEqual('project-next-item-id')
expect(outputs.itemId).toEqual('project-item-id')
})
test(`throws an error when url isn't a valid project url`, async () => {
@@ -402,18 +403,18 @@ describe('addToProject', () => {
test: /getProject/,
return: {
organization: {
projectNext: {
id: 'project-next-id'
projectV2: {
id: 'project-id'
}
}
}
},
{
test: /addProjectNextItem/,
test: /addProjectV2ItemById/,
return: {
addProjectNextItem: {
projectNextItem: {
id: 'project-next-item-id'
addProjectV2ItemById: {
projectItem: {
id: 'project-item-id'
}
}
}
@@ -424,7 +425,8 @@ describe('addToProject', () => {
expect(gqlMock).toHaveBeenNthCalledWith(1, expect.stringContaining('organization(login: $ownerName)'), {
ownerName: 'github',
projectNumber: 1
projectNumber: 1,
headers: {'GraphQL-Features': 'memex_graphql_projectv2'}
})
})
@@ -447,18 +449,18 @@ describe('addToProject', () => {
test: /getProject/,
return: {
organization: {
projectNext: {
id: 'project-next-id'
projectV2: {
id: 'project-id'
}
}
}
},
{
test: /addProjectNextItem/,
test: /addProjectV2ItemById/,
return: {
addProjectNextItem: {
projectNextItem: {
id: 'project-next-item-id'
addProjectV2ItemById: {
projectItem: {
id: 'project-item-id'
}
}
}
@@ -469,7 +471,8 @@ describe('addToProject', () => {
expect(gqlMock).toHaveBeenNthCalledWith(1, expect.stringContaining('user(login: $ownerName)'), {
ownerName: 'monalisa',
projectNumber: 1
projectNumber: 1,
headers: {'GraphQL-Features': 'memex_graphql_projectv2'}
})
})
})