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 ()=>{ it("Shoud Get with Standard Config", async ()=>{
const cli = getOauthClient(); const cli = getOauthClient();
mockedAxios.request.mockReset(); mockedAxios.request.mockReset();
mockedAxios.request.mockResolvedValueOnce({ mockedAxios.request.mockResolvedValueOnce({ data: mockedAccessToken });
data: mockedAccessToken
});
const now = Date.now(); await accessTokenValidator(cli);
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);
expect(mockedAxios.request).toBeCalledWith(expect.objectContaining({ expect(mockedAxios.request).toBeCalledWith(expect.objectContaining({
url: authUrl, url: authUrl,
method: "POST", method: "POST",
@ -49,18 +40,9 @@ describe("Get Access Token", ()=>{
authHeaderName: 'CustomAuthorizationHeader', authHeaderName: 'CustomAuthorizationHeader',
}); });
mockedAxios.request.mockReset(); mockedAxios.request.mockReset();
mockedAxios.request.mockResolvedValueOnce({ mockedAxios.request.mockResolvedValueOnce({ data: mockedAccessToken });
data: mockedAccessToken
});
const now = Date.now(); await accessTokenValidator(cli);
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);
expect(mockedAxios.request).toBeCalledWith(expect.objectContaining({ expect(mockedAxios.request).toBeCalledWith(expect.objectContaining({
url: authUrl, url: authUrl,
method: "POST", method: "POST",
@ -78,18 +60,9 @@ describe("Get Access Token", ()=>{
grantType: 'PermissaoCustom', grantType: 'PermissaoCustom',
}); });
mockedAxios.request.mockReset(); mockedAxios.request.mockReset();
mockedAxios.request.mockResolvedValueOnce({ mockedAxios.request.mockResolvedValueOnce({ data: mockedAccessToken });
data: mockedAccessToken
});
const now = Date.now(); await accessTokenValidator(cli);
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);
expect(mockedAxios.request).toBeCalledWith(expect.objectContaining({ expect(mockedAxios.request).toBeCalledWith(expect.objectContaining({
url: authUrl, url: authUrl,
method: "POST", method: "POST",
@ -107,18 +80,9 @@ describe("Get Access Token", ()=>{
authScope: 'EscopoCustom', authScope: 'EscopoCustom',
}); });
mockedAxios.request.mockReset(); mockedAxios.request.mockReset();
mockedAxios.request.mockResolvedValueOnce({ mockedAxios.request.mockResolvedValueOnce({ data: mockedAccessToken });
data: mockedAccessToken
});
const now = Date.now(); await accessTokenValidator(cli);
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);
expect(mockedAxios.request).toBeCalledWith(expect.objectContaining({ expect(mockedAxios.request).toBeCalledWith(expect.objectContaining({
url: authUrl, url: authUrl,
method: "POST", method: "POST",
@ -136,18 +100,9 @@ describe("Get Access Token", ()=>{
sendAuthCredentialsOnRequestBody: true, sendAuthCredentialsOnRequestBody: true,
}); });
mockedAxios.request.mockReset(); mockedAxios.request.mockReset();
mockedAxios.request.mockResolvedValueOnce({ mockedAxios.request.mockResolvedValueOnce({ data: mockedAccessToken });
data: mockedAccessToken
});
const now = Date.now(); await accessTokenValidator(cli);
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);
expect(mockedAxios.request).toBeCalledWith(expect.objectContaining({ expect(mockedAxios.request).toBeCalledWith(expect.objectContaining({
url: authUrl, url: authUrl,
method: "POST", 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){ function getOauthClient(opt:LhispOauthClientConstructorParams=baseClientParams){
return new LhispOauthClient(opt); return new LhispOauthClient(opt);
} }