Refatorando testes para reutilizar codigo de validacao

This commit is contained in:
Leandro Costa 2023-01-27 08:24:12 -03:00
parent 703ff404fa
commit 30090fe195

View file

@ -20,18 +20,9 @@ describe("Get Access Token", ()=>{
it("Shoud Get with Standard Config", async ()=>{
const cli = getOauthClient();
mockedAxios.request.mockReset();
mockedAxios.request.mockResolvedValueOnce({
data: mockedAccessToken
});
mockedAxios.request.mockResolvedValueOnce({ data: mockedAccessToken });
const now = Date.now();
const accessToken = await cli.getAccessToken();
expect(accessToken).toBeDefined();
expect(accessToken.token_type).toBe(mockedAccessToken.token_type);
expect(accessToken.access_token).toBe(mockedAccessToken.access_token);
expect(accessToken.expires_in).toBe(mockedAccessToken.expires_in);
expect(accessToken.scope).toBe(mockedAccessToken.scope);
expect(accessToken.created_at).toBeGreaterThanOrEqual(now);
await accessTokenValidator(cli);
expect(mockedAxios.request).toBeCalledWith(expect.objectContaining({
url: authUrl,
method: "POST",
@ -49,18 +40,9 @@ describe("Get Access Token", ()=>{
authHeaderName: 'CustomAuthorizationHeader',
});
mockedAxios.request.mockReset();
mockedAxios.request.mockResolvedValueOnce({
data: mockedAccessToken
});
mockedAxios.request.mockResolvedValueOnce({ data: mockedAccessToken });
const now = Date.now();
const accessToken = await cli.getAccessToken();
expect(accessToken).toBeDefined();
expect(accessToken.token_type).toBe(mockedAccessToken.token_type);
expect(accessToken.access_token).toBe(mockedAccessToken.access_token);
expect(accessToken.expires_in).toBe(mockedAccessToken.expires_in);
expect(accessToken.scope).toBe(mockedAccessToken.scope);
expect(accessToken.created_at).toBeGreaterThanOrEqual(now);
await accessTokenValidator(cli);
expect(mockedAxios.request).toBeCalledWith(expect.objectContaining({
url: authUrl,
method: "POST",
@ -78,18 +60,9 @@ describe("Get Access Token", ()=>{
grantType: 'PermissaoCustom',
});
mockedAxios.request.mockReset();
mockedAxios.request.mockResolvedValueOnce({
data: mockedAccessToken
});
mockedAxios.request.mockResolvedValueOnce({ data: mockedAccessToken });
const now = Date.now();
const accessToken = await cli.getAccessToken();
expect(accessToken).toBeDefined();
expect(accessToken.token_type).toBe(mockedAccessToken.token_type);
expect(accessToken.access_token).toBe(mockedAccessToken.access_token);
expect(accessToken.expires_in).toBe(mockedAccessToken.expires_in);
expect(accessToken.scope).toBe(mockedAccessToken.scope);
expect(accessToken.created_at).toBeGreaterThanOrEqual(now);
await accessTokenValidator(cli);
expect(mockedAxios.request).toBeCalledWith(expect.objectContaining({
url: authUrl,
method: "POST",
@ -107,18 +80,9 @@ describe("Get Access Token", ()=>{
authScope: 'EscopoCustom',
});
mockedAxios.request.mockReset();
mockedAxios.request.mockResolvedValueOnce({
data: mockedAccessToken
});
mockedAxios.request.mockResolvedValueOnce({ data: mockedAccessToken });
const now = Date.now();
const accessToken = await cli.getAccessToken();
expect(accessToken).toBeDefined();
expect(accessToken.token_type).toBe(mockedAccessToken.token_type);
expect(accessToken.access_token).toBe(mockedAccessToken.access_token);
expect(accessToken.expires_in).toBe(mockedAccessToken.expires_in);
expect(accessToken.scope).toBe(mockedAccessToken.scope);
expect(accessToken.created_at).toBeGreaterThanOrEqual(now);
await accessTokenValidator(cli);
expect(mockedAxios.request).toBeCalledWith(expect.objectContaining({
url: authUrl,
method: "POST",
@ -136,18 +100,9 @@ describe("Get Access Token", ()=>{
sendAuthCredentialsOnRequestBody: true,
});
mockedAxios.request.mockReset();
mockedAxios.request.mockResolvedValueOnce({
data: mockedAccessToken
});
mockedAxios.request.mockResolvedValueOnce({ data: mockedAccessToken });
const now = Date.now();
const accessToken = await cli.getAccessToken();
expect(accessToken).toBeDefined();
expect(accessToken.token_type).toBe(mockedAccessToken.token_type);
expect(accessToken.access_token).toBe(mockedAccessToken.access_token);
expect(accessToken.expires_in).toBe(mockedAccessToken.expires_in);
expect(accessToken.scope).toBe(mockedAccessToken.scope);
expect(accessToken.created_at).toBeGreaterThanOrEqual(now);
await accessTokenValidator(cli);
expect(mockedAxios.request).toBeCalledWith(expect.objectContaining({
url: authUrl,
method: "POST",
@ -160,6 +115,17 @@ describe("Get Access Token", ()=>{
});
});
async function accessTokenValidator(cli: LhispOauthClient){
const now = Date.now();
const accessToken = await cli.getAccessToken();
expect(accessToken).toBeDefined();
expect(accessToken.token_type).toBe(mockedAccessToken.token_type);
expect(accessToken.access_token).toBe(mockedAccessToken.access_token);
expect(accessToken.expires_in).toBe(mockedAccessToken.expires_in);
expect(accessToken.scope).toBe(mockedAccessToken.scope);
expect(accessToken.created_at).toBeGreaterThanOrEqual(now);
}
function getOauthClient(opt:LhispOauthClientConstructorParams=baseClientParams){
return new LhispOauthClient(opt);
}