-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
release(required): Amplify JS release (#13814)
- Loading branch information
Showing
129 changed files
with
2,913 additions
and
1,030 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -6,7 +6,8 @@ runs: | |
steps: | ||
- name: Start verdaccio | ||
run: | | ||
npx [email protected] & | ||
# This version supports Node.js v22 | ||
npx [email protected] & | ||
while ! nc -z localhost 4873; do | ||
echo "Verdaccio not running yet" | ||
sleep 1 | ||
|
@@ -18,25 +19,30 @@ runs: | |
- name: Install and run npm-cli-login | ||
shell: bash | ||
env: | ||
NPM_REGISTRY: http://localhost:4873/ | ||
NPM_REGISTRY_HOST: localhost:4873 | ||
NPM_REGISTRY: http://localhost:4873 | ||
NPM_USER: verdaccio | ||
NPM_PASS: verdaccio | ||
NPM_EMAIL: [email protected] | ||
run: | | ||
npm i -g npm-cli-adduser | ||
npm-cli-adduser | ||
sleep 1 | ||
- name: Configure registry and git | ||
# Make the HTTP request that npm addUser makes to avoid the "Exit handler never called" error | ||
TOKEN=$(curl -s \ | ||
-H "Accept: application/json" \ | ||
-H "Content-Type:application/json" \ | ||
-X PUT --data "{\"name\": \"$NPM_USER\", \"password\": \"$NPM_PASS\", \"email\": \"$NPM_EMAIL\"}" \ | ||
$NPM_REGISTRY/-/user/org.couchdb.user:$NPM_USER 2>&1 | jq -r '.token') | ||
# Set the Verdaccio registry and set the token for logging in | ||
yarn config set registry $NPM_REGISTRY | ||
npm set registry $NPM_REGISTRY | ||
npm set //"$NPM_REGISTRY_HOST"/:_authToken $TOKEN | ||
- name: Configure git | ||
shell: bash | ||
working-directory: ./amplify-js | ||
env: | ||
NPM_REGISTRY: http://localhost:4873/ | ||
NPM_USER: verdaccio | ||
NPM_PASS: verdaccio | ||
NPM_EMAIL: [email protected] | ||
run: | | ||
yarn config set registry $NPM_REGISTRY | ||
npm set registry $NPM_REGISTRY | ||
git config --global user.email $NPM_EMAIL | ||
git config --global user.name $NPM_USER | ||
git status | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
16 changes: 16 additions & 0 deletions
16
packages/auth/__tests__/foundation/cognitoUserPoolEndpointResolver.test.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
import { AmplifyUrl } from '@aws-amplify/core/internals/utils'; | ||
|
||
import { cognitoUserPoolEndpointResolver } from '../../src/foundation/cognitoUserPoolEndpointResolver'; | ||
import { COGNITO_IDP_SERVICE_NAME } from '../../src/foundation/constants'; | ||
|
||
describe('cognitoUserPoolEndpointResolver', () => { | ||
it('should return the Cognito User Pool endpoint', () => { | ||
const region = 'us-west-2'; | ||
const { url } = cognitoUserPoolEndpointResolver({ region }); | ||
|
||
expect(url instanceof AmplifyUrl).toBe(true); | ||
expect(url.toString()).toEqual( | ||
`https://${COGNITO_IDP_SERVICE_NAME}.us-west-2.amazonaws.com/`, | ||
); | ||
}); | ||
}); |
41 changes: 41 additions & 0 deletions
41
.../auth/__tests__/foundation/factories/serviceClients/cognitoIdentityProvider/index.test.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
import { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers'; | ||
|
||
import * as serviceClients from '../../../../../src/foundation/factories/serviceClients/cognitoIdentityProvider'; | ||
import { DEFAULT_SERVICE_CLIENT_API_CONFIG } from '../../../../../src/foundation/factories/serviceClients/cognitoIdentityProvider/constants'; | ||
|
||
import { mockServiceClientAPIConfig } from './testUtils/data'; | ||
|
||
jest.mock('@aws-amplify/core/internals/aws-client-utils/composers', () => ({ | ||
...jest.requireActual( | ||
'@aws-amplify/core/internals/aws-client-utils/composers', | ||
), | ||
composeServiceApi: jest.fn(), | ||
})); | ||
|
||
export const mockComposeServiceApi = jest.mocked(composeServiceApi); | ||
|
||
describe('service clients', () => { | ||
const serviceClientFactories = Object.keys(serviceClients); | ||
|
||
afterEach(() => { | ||
mockComposeServiceApi.mockClear(); | ||
}); | ||
|
||
test.each(serviceClientFactories)( | ||
'factory `%s` should invoke composeServiceApi with expected parameters', | ||
serviceClientFactory => { | ||
// eslint-disable-next-line import/namespace | ||
serviceClients[serviceClientFactory](mockServiceClientAPIConfig); | ||
|
||
expect(mockComposeServiceApi).toHaveBeenCalledWith( | ||
expect.any(Function), | ||
expect.any(Function), | ||
expect.any(Function), | ||
expect.objectContaining({ | ||
...DEFAULT_SERVICE_CLIENT_API_CONFIG, | ||
...mockServiceClientAPIConfig, | ||
}), | ||
); | ||
}, | ||
); | ||
}); |
43 changes: 43 additions & 0 deletions
43
...viceClients/cognitoIdentityProvider/shared/handler/cognitoUserPoolTransferHandler.test.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
import { unauthenticatedHandler } from '@aws-amplify/core/internals/aws-client-utils'; | ||
import { composeTransferHandler } from '@aws-amplify/core/internals/aws-client-utils/composers'; | ||
|
||
import { cognitoUserPoolTransferHandler } from '../../../../../../../src/foundation/factories/serviceClients/cognitoIdentityProvider/shared/handler'; | ||
|
||
jest.mock('@aws-amplify/core/internals/aws-client-utils/composers'); | ||
jest.mock('@aws-amplify/core/internals/aws-client-utils'); | ||
|
||
const mockComposeTransferHandler = jest.mocked(composeTransferHandler); | ||
const mockUnauthenticatedHandler = jest.mocked(unauthenticatedHandler); | ||
|
||
describe('cognitoUserPoolTransferHandler', () => { | ||
beforeAll(() => { | ||
// need to make sure cognitoUserPoolTransferHandler is imported and used in | ||
// the scope of the test | ||
const _ = cognitoUserPoolTransferHandler; | ||
}); | ||
|
||
it('adds the disableCacheMiddlewareFactory at module loading', () => { | ||
expect(mockComposeTransferHandler).toHaveBeenCalledTimes(1); | ||
|
||
const [core, middleware] = mockComposeTransferHandler.mock.calls[0]; | ||
|
||
expect(core).toStrictEqual(mockUnauthenticatedHandler); | ||
expect(middleware).toHaveLength(1); | ||
|
||
const disableCacheMiddlewareFactory = middleware[0] as any; | ||
const disableCacheMiddlewarePendingNext = disableCacheMiddlewareFactory(); | ||
|
||
const mockNext = jest.fn(); | ||
const disableCacheMiddleware = disableCacheMiddlewarePendingNext(mockNext); | ||
const mockRequest = { | ||
headers: {}, | ||
}; | ||
|
||
disableCacheMiddleware(mockRequest); | ||
|
||
expect(mockNext).toHaveBeenCalledWith(mockRequest); | ||
expect(mockRequest.headers).toEqual({ | ||
'cache-control': 'no-store', | ||
}); | ||
}); | ||
}); |
55 changes: 55 additions & 0 deletions
55
...rviceClients/cognitoIdentityProvider/shared/serde/createEmptyResponseDeserializer.test.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
import { | ||
HttpResponse, | ||
parseJsonError, | ||
} from '@aws-amplify/core/internals/aws-client-utils'; | ||
|
||
import { createEmptyResponseDeserializer } from '../../../../../../../src/foundation/factories/serviceClients/cognitoIdentityProvider/shared/serde/createEmptyResponseDeserializer'; | ||
import { AuthError } from '../../../../../../../src/errors/AuthError'; | ||
|
||
jest.mock('@aws-amplify/core/internals/aws-client-utils'); | ||
|
||
const mockParseJsonError = jest.mocked(parseJsonError); | ||
|
||
describe('createEmptyResponseDeserializer created response deserializer', () => { | ||
const deserializer = createEmptyResponseDeserializer(); | ||
|
||
it('returns undefined for 2xx status code', async () => { | ||
const response: HttpResponse = { | ||
statusCode: 200, | ||
body: { | ||
json: () => Promise.resolve({}), | ||
blob: () => Promise.resolve(new Blob()), | ||
text: () => Promise.resolve(''), | ||
}, | ||
headers: {}, | ||
}; | ||
const output = await deserializer(response); | ||
|
||
expect(output).toBeUndefined(); | ||
}); | ||
|
||
it('throws AuthError for 4xx status code', async () => { | ||
const expectedErrorName = 'TestError'; | ||
const expectedErrorMessage = 'TestErrorMessage'; | ||
const expectedError = new Error(expectedErrorMessage); | ||
expectedError.name = expectedErrorName; | ||
|
||
mockParseJsonError.mockReturnValueOnce(expectedError as any); | ||
const response: HttpResponse = { | ||
statusCode: 400, | ||
body: { | ||
json: () => Promise.resolve({}), | ||
blob: () => Promise.resolve(new Blob()), | ||
text: () => Promise.resolve(''), | ||
}, | ||
headers: {}, | ||
}; | ||
|
||
expect(deserializer(response as any)).rejects.toThrow( | ||
new AuthError({ | ||
name: expectedErrorName, | ||
message: expectedErrorMessage, | ||
}), | ||
); | ||
}); | ||
}); |
59 changes: 59 additions & 0 deletions
59
...es/serviceClients/cognitoIdentityProvider/shared/serde/createUserPoolDeserializer.test.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
import { | ||
HttpResponse, | ||
parseJsonBody, | ||
parseJsonError, | ||
} from '@aws-amplify/core/internals/aws-client-utils'; | ||
|
||
import { createUserPoolDeserializer } from '../../../../../../../src/foundation/factories/serviceClients/cognitoIdentityProvider/shared/serde/createUserPoolDeserializer'; | ||
import { AuthError } from '../../../../../../../src/errors/AuthError'; | ||
|
||
jest.mock('@aws-amplify/core/internals/aws-client-utils'); | ||
|
||
const mockParseJsonBody = jest.mocked(parseJsonBody); | ||
const mockParseJsonError = jest.mocked(parseJsonError); | ||
|
||
describe('buildUserPoolDeserializer created response deserializer', () => { | ||
const deserializer = createUserPoolDeserializer(); | ||
|
||
it('returns body for 2xx status code', async () => { | ||
const expectedBody = { test: 'test' }; | ||
mockParseJsonBody.mockResolvedValueOnce(expectedBody); | ||
const response: HttpResponse = { | ||
statusCode: 200, | ||
body: { | ||
json: () => Promise.resolve({}), | ||
blob: () => Promise.resolve(new Blob()), | ||
text: () => Promise.resolve(''), | ||
}, | ||
headers: {}, | ||
}; | ||
const output = await deserializer(response); | ||
|
||
expect(output).toStrictEqual(expectedBody); | ||
}); | ||
|
||
it('throws AuthError for 4xx status code', async () => { | ||
const expectedErrorName = 'TestError'; | ||
const expectedErrorMessage = 'TestErrorMessage'; | ||
const expectedError = new Error(expectedErrorMessage); | ||
expectedError.name = expectedErrorName; | ||
|
||
mockParseJsonError.mockReturnValueOnce(expectedError as any); | ||
const response: HttpResponse = { | ||
statusCode: 400, | ||
body: { | ||
json: () => Promise.resolve({}), | ||
blob: () => Promise.resolve(new Blob()), | ||
text: () => Promise.resolve(''), | ||
}, | ||
headers: {}, | ||
}; | ||
|
||
expect(deserializer(response as any)).rejects.toThrow( | ||
new AuthError({ | ||
name: expectedErrorName, | ||
message: expectedErrorMessage, | ||
}), | ||
); | ||
}); | ||
}); |
27 changes: 27 additions & 0 deletions
27
...ries/serviceClients/cognitoIdentityProvider/shared/serde/createUserPoolSerializer.test.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
import { AmplifyUrl } from '@aws-amplify/core/internals/utils'; | ||
|
||
import { createUserPoolSerializer } from '../../../../../../../src/foundation/factories/serviceClients/cognitoIdentityProvider/shared/serde/createUserPoolSerializer'; | ||
|
||
describe('createUserPoolSerializer created request serializer', () => { | ||
test.each(['SignUp', 'InitiateAuth', 'RevokeToken'] as const)( | ||
`it serializes requests from operation %s`, | ||
operation => { | ||
const testInput = { testBody: 'testBody' }; | ||
const testEndpoint = { | ||
url: new AmplifyUrl('http://test.com'), | ||
}; | ||
const serializer = createUserPoolSerializer(operation); | ||
const result = serializer(testInput, testEndpoint); | ||
|
||
expect(result).toEqual({ | ||
method: 'POST', | ||
url: testEndpoint.url, | ||
headers: { | ||
'content-type': 'application/x-amz-json-1.1', | ||
'x-amz-target': `AWSCognitoIdentityProviderService.${operation}`, | ||
}, | ||
body: JSON.stringify(testInput), | ||
}); | ||
}, | ||
); | ||
}); |
7 changes: 7 additions & 0 deletions
7
...h/__tests__/foundation/factories/serviceClients/cognitoIdentityProvider/testUtils/data.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
import { ServiceClientFactoryInput } from '../../../../../../src/foundation/factories/serviceClients/cognitoIdentityProvider/types'; | ||
|
||
export const mockServiceClientAPIConfig: ServiceClientFactoryInput = { | ||
endpointResolver: jest.fn() as jest.MockedFunction< | ||
ServiceClientFactoryInput['endpointResolver'] | ||
>, | ||
}; |
Oops, something went wrong.