Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Setting up initial iDenfy KYC verification #190

Merged
merged 4 commits into from
Mar 6, 2023

Conversation

escobarjonatan
Copy link
Contributor

Add the ability for a user to be able to verify themselves through iDenfy KYC services.

idenfy480.mov

@newmskywalker
Copy link
Contributor

Task linked: CU-85zrjpj3n KYC

@github-actions
Copy link

Coverage after merging CU-85zrjpj3n_KYC_Jonatan-Escobar into master

32.75%

Coverage Report
FileBranchesFuncsLinesUncovered Lines
src
   App.tsx100%0%0%20, 21, 22, 25
   buildParams.ts66.67%100%100%2, 9
   index.tsx100%100%0%17, 7
   reportWebVitals.ts0%0%0%..., 6, 7, 8, 9
   store.ts50%100%100%35
src/api
   index.ts100%100%100%
src/api/cloudinary
   api.ts100%50%66.67%13
   types.ts100%100%100%
src/api/idenfy
   api.ts100%50%75%18
   types.ts100%100%100%
src/api/lambda
   api.ts100%100%100%
src/api/newm
   api.ts100%100%100%
   utils.ts0%33.33%13.04%..., 75, 78, 79, 83
src/assets/images
   AddImage.tsx100%100%100%
   AddSong.tsx100%100%100%
   AnalyticsIcon.tsx100%100%100%
   CheckCircle.tsx100%100%100%
   CheckIcon.jsx0%0%50%1, 1, 2
   CheckboxIcon.tsx100%0%50%2
   CloseCircleFill.tsx100%0%50%2
   CloseIcon.jsx0%0%50%1, 1, 2
   DropdownAdornment.tsx100%0%0%3, 4
   EditPencilIcon.tsx100%0%0%1, 2
   FacebookIcon.tsx100%100%100%
   FoldersIcon.jsx100%100%100%
   InfoCircleLine.tsx100%0%0%1, 2
   LinkedInIcon.tsx100%100%100%
   LogoutIcon.tsx100%100%100%
   NEWM-logo-sm-inverse.tsx100%100%100%
   NEWMLogo.tsx100%100%100%
   Owner.tsx100%0%50%2
   PendingBadge.tsx100%100%100%
   PeopleIcon.tsx100%100%100%
   PlayButton.tsx100%0%0%3, 4
   SoundWave.tsx100%0%0%1, 2
   StarIcon.tsx100%100%100%
   TimeCircleLine.tsx100%0%0%1, 2
   UploadIcon.tsx100%100%100%
   VerticalEllipsis.tsx100%0%0%1, 2
   WalletIcon.tsx100%100%100%
src/common
   BrowserRouter.tsx100%0%0%18, 19, 20, 25, 27
   apiUtils.ts0%66.67%36.36%..., 16, 16, 17, 20
   fileUtils.ts0%0%15.38%..., 26, 27, 28, 31
   formUtils.ts16.67%20%42.86%..., 31, 31, 31, 41
   history.ts100%100%100%
   hooks.ts47.06%81.82%87.50%..., 68, 78, 80, 80
   index.ts100%100%100%
   storybookUtils.tsx100%0%50%7
   testUtils.tsx66.67%100%100%26
   types.ts100%100%100%
   urlUtils.ts100%100%100%
src/common/mockConstants
   index.ts100%100%100%
   mockFile.ts100%0%100%
   mockOwnersData.ts100%100%100%
   mockProfile.ts100%100%100%
   mockRoyalties.ts100%0%0%1, 22, 7, 8
   mockSession.ts100%100%100%
   mockSong.ts100%100%100%
   mockSongRoyalties.ts100%100%100%
   mockTransactions.ts100%100%100%
   mockWallet.ts100%0%66.67%16, 23
src/components
   Background.tsx100%0%75%35
   FacebookLogin.tsx75%100%80%21, 22, 30
   FadeTransition.tsx0%0%28.57%..., 22, 24, 7, 7
   GoogleLogin.tsx75%100%90.91%28, 29
   IconMessage.tsx100%100%100%
   ImageUpload.tsx61.90%80%95.45%..., 87, 87, 94, 98
   LinkedInLogin.tsx100%50%83.33%24
   Modal.tsx0%0%12.50%..., 28, 31, 33, 36
   NEWMLogo.tsx100%0%50%5
   Popup.tsx100%0%60%13, 15
   PrivateRoute.tsx0%0%25%11, 12, 14, 14, 14
   ResponsiveNEWMLogo.tsx50%100%100%12, 13
   SearchBox.tsx0%100%100%14
   SquareGridCard.tsx100%0%66.67%24
   TableDropdownSelect.tsx100%0%14.29%..., 30, 32, 33, 35
   TablePagination.tsx50%100%100%40, 62
   Toast.tsx0%0%8.33%..., 27, 77, 77, 9
   UploadImage.tsx55.56%44.44%43.75%..., 80, 80, 81, 84
   UploadSong.tsx50%16.67%30%..., 57, 60, 91, 92
   ViewPDF.tsx0%0%5.56%..., 66, 81, 81, 95
   index.ts100%100%100%
src/components/createProfile
   AddProfileInformation.tsx70.59%83.33%87.50%..., 49, 50, 79, 98
src/components/form
   CheckboxField.tsx0%0%0%13, 16, 19, 19, 9
   DropdownSelectField.tsx0%0%33.33%11, 14, 14, 9
   FilteredTagsField.tsx100%83.33%90.91%31
   GradientTextInputField.tsx50%50%66.67%19, 20, 26
   PasswordInputField.tsx100%100%100%
   SwitchField.tsx100%0%25%14, 17, 19
   TextAreaField.tsx0%0%33.33%12, 14, 14, 9
   TextInputField.tsx50%100%100%13
   UploadImageField.tsx0%0%16.67%..., 19, 20, 21, 21
   UploadSongField.tsx0%0%16.67%..., 17, 18, 19, 19
   WizardForm.tsx9.09%71.43%52%..., 97, 97, 97, 98
src/components/home
   LogoutButton.tsx50%50%83.33%11, 16
   SideBarHeader.tsx100%100%100%
   SideBarNavLink.tsx100%100%100%
src/components/library
   IconStatus.tsx0%0%50%18, 19, 22
src/components/stories
   form.stories.tsx100%0%0%..., 45, 49, 50, 62
src/components/styled
   DashedOutline.ts100%100%100%
   ErrorMessage.ts100%100%100%
   PaperInput.ts100%100%100%
   ProfileImage.ts100%100%100%
   SolidOutline.ts100%100%100%
   StyledPagination.tsx100%100%100%
src/components/uploadSong
   SelectWalletItem.tsx100%0%50%16
src/elements
   Alert.tsx0%0%50%17, 18, 21
   Button.tsx76.92%100%100%106, 112, 112
   Checkbox.tsx0%0%50%21, 57, 57
   DatePickerInput.tsx100%0%33.33%11, 13
   DropdownSelect.tsx80%100%92.86%110, 110, 94, 95
   GradientTextInput.tsx93.33%100%100%111
   Link.tsx0%0%50%11, 14
   Switch.tsx0%0%42.86%..., 59, 71, 71, 77
   TextArea.tsx0%0%16.67%..., 90, 93, 98, 98
   TextInput.tsx81.82%66.67%83.33%..., 86, 87, 90, 99
   Typography.tsx100%100%100%
   index.ts100%100%100%
src/elements/skeletons
   TableSkeleton.tsx0%0%25%..., 14, 16, 30, 44
src/elements/stories
   button.stories.tsx100%0%0%..., 54, 70, 71, 9
   dropdownSelect.stories.tsx100%0%0%19, 20, 4
   gradientTextInput.stories.tsx100%0%0%10, 11, 13, 14, 17
   textInput.stories.tsx100%0%0%11, 12
   typography.stories.tsx100%0%0%..., 21, 40, 41, 9
src/elements/styled
   Dialog.ts100%100%100%
   GradientTypography.ts100%100%100%
   HorizontalLine.ts100%100%100%
   Tooltip.tsx100%0%33.33%16, 8
src/modules/content
   api.ts100%33.33%37.50%12, 13, 14, 17, 9
   index.ts100%100%100%
   selectors.ts100%0%50%5
   slice.ts100%0%60%59, 60
   types.ts100%100%100%
src/modules/playlist
   index.ts100%100%100%
   selectors.ts100%0%50%6
   slice.ts100%100%100%
   types.ts100%100%100%
src/modules/session
   api.ts0%5.26%4.55%..., 90, 91, 92, 94
   index.ts100%100%100%
   selectors.ts100%100%100%
   slice.ts100%0%60%32, 35
   thunks.ts0%0%18.42%..., 92, 92, 93, 96
   types.ts100%100%100%
   utils.ts100%0%21.43%..., 27, 28, 30, 8
src/modules/song
   api.ts100%12.50%16.67%..., 83, 84, 86, 93
   index.ts100%100%100%
   selectors.ts100%0%50%4
   slice.ts100%0%50%15, 18, 21
   thunks.ts0%0%6.98%..., 77, 80, 87, 92
   types.ts100%100%100%
src/modules/ui
   index.ts100%100%100%
   selectors.ts100%0%100%
   slice.ts100%0%33.33%..., 19, 22, 23, 24
   types.ts100%100%100%
src/modules/wallet
   index.ts100%100%100%
   selectors.ts100%0%50%4
   slice.ts100%0%60%13, 14
   types.ts100%100%100%
   utils.ts0%0%20.45%..., 96, 99, 99, 99
src/pages/createProfile
   Begin.tsx100%0%0%..., 18, 7, 8, 9
   Complete.tsx100%0%0%6, 7, 9
   CreateProfile.tsx100%0%0%..., 39, 48, 49, 52
   SelectGenre.tsx100%0%0%6, 7, 9
   SelectNickname.tsx100%0%0%4, 5
   SelectRole.tsx100%0%0%11, 7, 8, 9
   index.ts100%100%100%
src/pages/forgotPassword
   ForgotPassword.tsx100%0%0%..., 30, 33, 34, 37
   InitiateReset.tsx100%0%0%11, 7, 8, 9
   ResetPassword.tsx0%0%0%..., 21, 7, 8, 9
   VerifyEmail.tsx0%0%0%..., 25, 69, 69, 9
   index.ts100%100%100%
src/pages/home
   Home.tsx100%0%0%..., 24, 27, 29, 54
   SideBar.tsx37.50%8.33%31.25%..., 47, 75, 87, 94
   index.ts100%100%100%
src/pages/home/analytics
   Analytics.tsx100%0%0%5, 6
src/pages/home/library
   Discography.tsx0%0%0%..., 97, 97, 97, 98
   EditSong.tsx0%0%0%..., 55, 60, 72, 72
   Library.tsx100%0%0%7, 8
   Mint.tsx0%0%0%..., 71, 79, 94, 94
   MintingStatus.tsx0%0%0%..., 34, 34, 35, 43
   NoSongsYet.tsx100%0%0%10, 32, 7, 8
   SongInfo.tsx0%0%0%..., 81, 81, 81, 81
   SongList.tsx0%0%0%..., 89, 90, 91, 91
src/pages/home/owners
   NoOwnersYet.tsx100%0%50%7
   Owners.tsx57.14%100%86.36%..., 50, 57, 58, 63
   OwnersTable.tsx66.67%75%88.89%..., 38, 55, 68, 70
src/pages/home/profile
   IdenfyModal.tsx0%0%0%12, 13, 18, 20
   Profile.tsx0%0%0%..., 98, 98, 99, 99
src/pages/home/uploadSong
   AddOwner.tsx100%0%0%..., 146, 155, 159, 9
   AddOwnerModal.tsx0%0%0%..., 41, 41, 48, 66
   ConfirmAgreement.tsx0%0%0%..., 94, 94, 94, 94
   MintSong.tsx0%0%0%..., 83, 91, 96, 96
   MintSongModal.tsx0%0%0%..., 64, 65, 79, 96
   SongInfo.tsx0%0%0%..., 19, 20, 21, 23
   UploadSong.tsx0%0%0%..., 57, 58, 61, 70
src/pages/home/wallet
   AllCaughtUp.tsx100%0%0%5, 6
   Portfolio.tsx0%0%0%..., 52, 53, 64, 9
   SongRoyaltiesList.tsx0%0%0%..., 92, 92, 92, 93
   TabbedContainer.tsx0%0%0%..., 64, 66, 67, 70
   TransactionsList.tsx0%0%0%..., 98, 99, 99, 99
   UnclaimedRoyalties.tsx100%0%0%12, 9
   Wallet.tsx100%0%0%10, 9
src/pages/login
   Login.tsx0%0%0%..., 63, 86, 86, 94
   index.ts100%100%100%
src/pages/signUp
   SignUp.tsx100%33.33%80%44, 56
   Verification.tsx0%0%10%..., 20, 23, 69, 69
   Welcome.tsx100%50%90%23
   index.ts100%100%100%
src/theme
   index.ts100%100%100%
   theme.ts100%100%100%

@github-actions
Copy link

github-actions bot commented Feb 27, 2023

Visit the preview URL for this PR (updated for commit bfcee6d):

https://newm-artist-portal--pr190-cu-85zrjpj3n-kyc-jon-u3dfpmbz.web.app

(expires Mon, 03 Apr 2023 21:59:11 GMT)

🔥 via Firebase Hosting GitHub Action 🌎

Sign: ec3483d4c62309afc398865bfd6a9fc9e03e1d46

readonly externalRef?: string | null;
readonly firstName?: string;
readonly generateDigitString?: boolean;
readonly lastName?: string;
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

along with the required clientId that we send to them, we can also send the optional firstName lastName fields. This would ensure the person doing the verification session has the same name as the profile. Maybe we can do that post MVP?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sounds reasonable to me

@@ -4,4 +4,7 @@ import { mockProfile } from "./mockProfile";
export const mockSession: SessionState = {
isLoggedIn: true,
profile: mockProfile,
idenfy: {
authToken: "",
},
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I thought we should put the authToken in state so we dont trigger an api call to fetch a token every time they open/close the modal? We can set the expiry time of the session/token in the admin settings as well

Copy link
Contributor

@scandycuz scandycuz Mar 2, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd recommend saving it in a cookie, similar to the NEWM session token. Should be slightly more secure.

@@ -0,0 +1,28 @@
import { styled } from "@mui/material/styles";
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copied from the token sale


dispatch(receiveIdenfyToken(idenfyTokenResponse.data.authToken));

dispatch(updateProfile({ verifiedStatus: "pending" }));
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is something that has been on my mind. We update status to "pending" after we initiate the verification session. if the user decides not to finish the process, it will remain in pending. They will still be able to create a new session if they login out/in or refresh. So technically this will still work but it would not be an accurate status. @scandycuz thoughts?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we only trigger the "pending" status as part of the redirect that navigates the user after they complete the process, that should be fine. We could either have a query param in the redirect url that tells the page to update the verification status in the back-end, or the redirect page could make that API call and then navigate to the page where the user should arrive.

The next best thing would be if iDenfy made a call to our back-end when the verification process started, but I imagine that isn't possible.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@scandycuz After learning more about iDenfy and the process. The piece that i couldn't get around was what you last stated, currently there's no support for adding a callback on token request.

However, it looks like we(BE) will be getting an automatic callback as soon as the user finishes their session. At that point BE will update the status to pending and then approved as soon as they get the second callback.

We can configure the success/fail url and add a param like you suggested and then send a request to BE for the status, but at that point, why not go with the other solution to send BE a status request every 1 minute or so after triggering a session verification. I can see us having to send interval requests even with the query solution.

I updated the code to remove changing status for now though

Copy link
Contributor

@scandycuz scandycuz Mar 6, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If I understand correctly, it sounds like there are two potential options, and I imagine both options should start when the user completes the front-end flow in the iFrame, that way we know they've completed the process:

Option 1:

Start pinging the back-end for "verified" or "unverified" status as soon as user completes flow

  • We should probably limit the pinging to 30 minutes or so, just in case there is a back-end issue where the iDenfy call couldn't get through to the NEWM API.
  • We'll probably want to maintain some sort of persisted "pending" status on the front-end, along with the timestamp of when it started pinging, so that the app will know whether to ping after the user closes the browser and re-opens it (this could be done post MVP if we wanted, as it's more of a nice-to-have).
  • Also, if we go that route, we probably don't need the "pending" status on the NEWM back-end, since the front-end will only look for the "verified" or "unverified" status to stop pinging.

Pros:

  • Don't have to worry about a manually setting a "pending" status on the back-end that may get out of sync with iDenfy's status

Cons

  • The front-end will maintain it's own logic to determine if and how long it should ping for the status

Option 2:

When the user completes the flow, make a call to the NEWM server that manually updates the status to "pending".

  • Front-end has logic to always ping the back-end when status from back-end is "pending"

Pros

  • Front-end doesn't have to manage the "pending" status of the verification as this is stored on the back-end

Cons

  • Artist portal would be updating status to "pending", but iDenfy is the source of truth, so there is a possibility the status could get out of sync
  • Probably need two separate endpoints on the back-end for updating the status, one that iDenfy calls and one that the artist portal calls.

Let me know if that makes sense, I think either approach should be fine.

Copy link
Contributor

@scandycuz scandycuz Mar 6, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I imagine the first option would be the best. Less complex on the back-end, and persisting the timestap for when the front-end started pinging should be straightforward enough. I wouldn't implement it for now though, we should implement redux-persist first (it's implemented in the token sale app but not the artist portal), and then we'll be able to just store verificationPingStartedAt in Redux so we don't have to use LocalStorage.

Assuming we go with that approach, we should proably reach out to Walter and let him know that an isVerified boolean actually works better on the back-end.

src/modules/session/types.ts Outdated Show resolved Hide resolved
import { FunctionComponent } from "react";
import { useSelector } from "react-redux";
import { selectSession } from "modules/session";
import { Modal } from "components";
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I noticed that this modal that was brought in from the token sale is full screen. Are we going to keep our modals full screen or did we import the wrong one? @scandycuz

Copy link
Contributor

@scandycuz scandycuz Mar 2, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was concerned that having a partial screen modal would be too small for viewing the artist agreement PDF. It seems fine to allow for different sized modals, depending on the need. We could add an isFullscreen boolean if we wanted.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I will have a conversation with product bc i feel like the full screen is a better option for iframes as well to allow flexibility vs trying to fit a full page in 600px lol


const handleVerificationSession = () => {
if (!authToken) {
dispatch(requestVerificationToken({ clientId: id }));
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you are testing this out in your local, I would recommend commenting this line out after you get the authToken and hardcode that in. We have a limited amount of testing tokens and would like to use them once the BE work is done so that is more E2E.

@github-actions
Copy link

github-actions bot commented Mar 4, 2023

Coverage after merging CU-85zrjpj3n_KYC_Jonatan-Escobar into master

32.27%

Coverage Report
FileBranchesFuncsLinesUncovered Lines
src
   App.tsx100%0%0%20, 21, 22, 25
   buildParams.ts66.67%100%100%2, 9
   index.tsx100%100%0%17, 7
   reportWebVitals.ts0%0%0%..., 6, 7, 8, 9
   store.ts50%100%100%33
src/api
   index.ts100%100%100%
src/api/cloudinary
   api.ts100%50%66.67%13
   types.ts100%100%100%
src/api/lambda
   api.ts100%100%100%
src/api/newm
   api.ts100%100%100%
   utils.ts0%33.33%13.04%..., 75, 78, 79, 83
src/assets/images
   AddImage.tsx100%100%100%
   AddSong.tsx100%100%100%
   AnalyticsIcon.tsx100%100%100%
   CheckCircle.tsx100%100%100%
   CheckIcon.jsx0%0%50%1, 1, 2
   CheckboxIcon.tsx100%0%50%2
   CloseCircleFill.tsx100%0%50%2
   CloseIcon.jsx0%0%50%1, 1, 2
   DropdownAdornment.tsx100%0%0%3, 4
   EditPencilIcon.tsx100%0%0%1, 2
   FacebookIcon.tsx100%100%100%
   FoldersIcon.jsx100%100%100%
   InfoCircleLine.tsx100%0%0%1, 2
   LinkedInIcon.tsx100%100%100%
   LogoutIcon.tsx100%100%100%
   NEWM-logo-sm-inverse.tsx100%100%100%
   NEWMLogo.tsx100%100%100%
   Owner.tsx100%0%50%2
   PendingBadge.tsx100%100%100%
   PeopleIcon.tsx100%100%100%
   PlayButton.tsx100%0%0%3, 4
   SoundWave.tsx100%0%0%1, 2
   StarIcon.tsx100%100%100%
   TimeCircleLine.tsx100%0%0%1, 2
   UploadIcon.tsx100%100%100%
   VerticalEllipsis.tsx100%0%0%1, 2
   WalletIcon.tsx100%100%100%
src/common
   BrowserRouter.tsx100%0%0%18, 19, 20, 25, 27
   apiUtils.ts0%66.67%36.36%..., 16, 16, 17, 20
   fileUtils.ts0%0%15.38%..., 26, 27, 28, 31
   formUtils.ts16.67%20%42.86%..., 31, 31, 31, 41
   history.ts100%100%100%
   hooks.ts47.06%81.82%87.50%..., 68, 78, 80, 80
   index.ts100%100%100%
   storybookUtils.tsx100%0%50%7
   testUtils.tsx66.67%100%100%26
   types.ts100%100%100%
   urlUtils.ts100%100%100%
src/common/mockConstants
   index.ts100%100%100%
   mockFile.ts100%0%100%
   mockOwnersData.ts100%100%100%
   mockProfile.ts100%100%100%
   mockRoyalties.ts100%0%0%1, 22, 7, 8
   mockSession.ts100%100%100%
   mockSong.ts100%100%100%
   mockSongRoyalties.ts100%100%100%
   mockTransactions.ts100%100%100%
   mockWallet.ts100%0%66.67%16, 23
src/components
   Background.tsx100%0%75%35
   FacebookLogin.tsx75%100%80%21, 22, 30
   FadeTransition.tsx0%0%28.57%..., 22, 24, 7, 7
   GoogleLogin.tsx75%100%90.91%28, 29
   IconMessage.tsx100%100%100%
   ImageUpload.tsx61.90%80%95.45%..., 87, 87, 94, 98
   LinkedInLogin.tsx100%50%83.33%24
   Modal.tsx0%0%12.50%..., 28, 31, 33, 36
   NEWMLogo.tsx100%0%50%5
   Popup.tsx100%0%60%13, 15
   PrivateRoute.tsx0%0%25%11, 12, 14, 14, 14
   ResponsiveNEWMLogo.tsx50%100%100%12, 13
   SearchBox.tsx0%100%100%14
   SquareGridCard.tsx100%0%66.67%24
   TableDropdownSelect.tsx100%0%14.29%..., 30, 32, 33, 35
   TablePagination.tsx50%100%100%40, 62
   Toast.tsx0%0%8.33%..., 27, 77, 77, 9
   UploadImage.tsx55.56%44.44%43.75%..., 80, 80, 81, 84
   UploadSong.tsx50%16.67%30%..., 57, 60, 91, 92
   ViewPDF.tsx0%0%5.56%..., 66, 81, 81, 95
   index.ts100%100%100%
src/components/createProfile
   AddProfileInformation.tsx70.59%83.33%87.50%..., 49, 50, 79, 98
src/components/form
   CheckboxField.tsx0%0%0%13, 16, 19, 19, 9
   DropdownSelectField.tsx0%0%33.33%11, 14, 14, 9
   FilteredTagsField.tsx100%83.33%90.91%31
   GradientTextInputField.tsx50%50%66.67%19, 20, 26
   PasswordInputField.tsx100%100%100%
   SwitchField.tsx100%0%25%14, 17, 19
   TextAreaField.tsx0%0%33.33%12, 14, 14, 9
   TextInputField.tsx50%100%100%13
   UploadImageField.tsx0%0%16.67%..., 19, 20, 21, 21
   UploadSongField.tsx0%0%16.67%..., 17, 18, 19, 19
   WizardForm.tsx9.09%71.43%52%..., 97, 97, 97, 98
src/components/home
   LogoutButton.tsx50%50%83.33%11, 16
   SideBarHeader.tsx100%100%100%
   SideBarNavLink.tsx100%100%100%
src/components/library
   IconStatus.tsx0%0%50%18, 19, 22
src/components/stories
   form.stories.tsx100%0%0%..., 45, 49, 50, 62
src/components/styled
   DashedOutline.ts100%100%100%
   ErrorMessage.ts100%100%100%
   PaperInput.ts100%100%100%
   ProfileImage.ts100%100%100%
   SolidOutline.ts100%100%100%
   StyledPagination.tsx100%100%100%
src/components/uploadSong
   SelectWalletItem.tsx100%0%50%16
src/elements
   Alert.tsx0%0%50%17, 18, 21
   Button.tsx76.92%100%100%106, 112, 112
   Checkbox.tsx0%0%50%21, 57, 57
   DatePickerInput.tsx100%0%33.33%11, 13
   DropdownSelect.tsx80%100%92.86%110, 110, 94, 95
   GradientTextInput.tsx93.33%100%100%111
   Link.tsx0%0%50%11, 14
   Switch.tsx0%0%42.86%..., 59, 71, 71, 77
   TextArea.tsx0%0%16.67%..., 90, 93, 98, 98
   TextInput.tsx81.82%66.67%83.33%..., 86, 87, 90, 99
   Typography.tsx100%100%100%
   index.ts100%100%100%
src/elements/skeletons
   TableSkeleton.tsx0%0%25%..., 14, 16, 30, 44
src/elements/stories
   button.stories.tsx100%0%0%..., 54, 70, 71, 9
   dropdownSelect.stories.tsx100%0%0%19, 20, 4
   gradientTextInput.stories.tsx100%0%0%10, 11, 13, 14, 17
   textInput.stories.tsx100%0%0%11, 12
   typography.stories.tsx100%0%0%..., 21, 40, 41, 9
src/elements/styled
   Dialog.ts100%100%100%
   GradientTypography.ts100%100%100%
   HorizontalLine.ts100%100%100%
   Tooltip.tsx100%0%33.33%16, 8
src/modules/content
   api.ts100%33.33%37.50%12, 13, 14, 17, 9
   index.ts100%100%100%
   selectors.ts100%0%50%5
   slice.ts100%0%60%59, 60
   types.ts100%100%100%
src/modules/playlist
   index.ts100%100%100%
   selectors.ts100%0%50%6
   slice.ts100%100%100%
   types.ts100%100%100%
src/modules/session
   api.ts0%4.76%4.17%..., 91, 92, 93, 95
   index.ts100%100%100%
   selectors.ts100%100%100%
   slice.ts100%0%75%29
   thunks.ts0%0%17.95%..., 91, 91, 92, 95
   types.ts100%100%100%
   utils.ts100%0%20%..., 28, 29, 31, 8
src/modules/song
   api.ts100%12.50%16.67%..., 83, 84, 86, 93
   index.ts100%100%100%
   selectors.ts100%0%50%4
   slice.ts100%0%50%15, 18, 21
   thunks.ts0%0%6.98%..., 77, 80, 87, 92
   types.ts100%100%100%
src/modules/ui
   index.ts100%100%100%
   selectors.ts100%0%100%
   slice.ts100%0%33.33%..., 19, 22, 23, 24
   types.ts100%100%100%
src/modules/wallet
   index.ts100%100%100%
   selectors.ts100%0%50%4
   slice.ts100%0%60%13, 14
   types.ts100%100%100%
   utils.ts0%0%20.45%..., 96, 99, 99, 99
src/pages/createProfile
   Begin.tsx100%0%0%..., 18, 7, 8, 9
   Complete.tsx100%0%0%6, 7, 9
   CreateProfile.tsx100%0%0%..., 39, 48, 49, 52
   SelectGenre.tsx100%0%0%6, 7, 9
   SelectNickname.tsx100%0%0%4, 5
   SelectRole.tsx100%0%0%11, 7, 8, 9
   index.ts100%100%100%
src/pages/forgotPassword
   ForgotPassword.tsx100%0%0%..., 30, 33, 34, 37
   InitiateReset.tsx100%0%0%11, 7, 8, 9
   ResetPassword.tsx0%0%0%..., 21, 7, 8, 9
   VerifyEmail.tsx0%0%0%..., 25, 69, 69, 9
   index.ts100%100%100%
src/pages/home
   Home.tsx100%0%0%..., 24, 27, 29, 54
   SideBar.tsx37.50%8.33%31.25%..., 47, 75, 87, 94
   index.ts100%100%100%
src/pages/home/analytics
   Analytics.tsx100%0%0%5, 6
src/pages/home/library
   Discography.tsx0%0%0%..., 97, 97, 97, 98
   EditSong.tsx0%0%0%..., 55, 60, 72, 72
   Library.tsx100%0%0%7, 8
   Mint.tsx0%0%0%..., 71, 79, 94, 94
   MintingStatus.tsx0%0%0%..., 34, 34, 35, 43
   NoSongsYet.tsx100%0%0%10, 32, 7, 8
   SongInfo.tsx0%0%0%..., 81, 81, 81, 81
   SongList.tsx0%0%0%..., 89, 90, 91, 91
src/pages/home/owners
   NoOwnersYet.tsx100%0%50%7
   Owners.tsx57.14%100%86.36%..., 50, 57, 58, 63
   OwnersTable.tsx66.67%75%88.89%..., 38, 55, 68, 70
src/pages/home/profile
   IdenfyModal.tsx0%0%0%..., 40, 43, 45, 45
   Profile.tsx0%0%0%..., 96, 96, 99, 99
src/pages/home/uploadSong
   AddOwner.tsx100%0%0%..., 146, 155, 159, 9
   AddOwnerModal.tsx0%0%0%..., 41, 41, 48, 66
   ConfirmAgreement.tsx0%0%0%..., 94, 94, 94, 94
   MintSong.tsx0%0%0%..., 83, 91, 96, 96
   MintSongModal.tsx0%0%0%..., 64, 65, 79, 96
   SongInfo.tsx0%0%0%..., 19, 20, 21, 23
   UploadSong.tsx0%0%0%..., 57, 58, 61, 70
src/pages/home/wallet
   AllCaughtUp.tsx100%0%0%5, 6
   Portfolio.tsx0%0%0%..., 52, 53, 64, 9
   SongRoyaltiesList.tsx0%0%0%..., 92, 92, 92, 93
   TabbedContainer.tsx0%0%0%..., 64, 66, 67, 70
   TransactionsList.tsx0%0%0%..., 98, 99, 99, 99
   UnclaimedRoyalties.tsx100%0%0%12, 9
   Wallet.tsx100%0%0%10, 9
src/pages/login
   Login.tsx0%0%0%..., 63, 86, 86, 94
   index.ts100%100%100%
src/pages/signUp
   SignUp.tsx100%33.33%80%44, 56
   Verification.tsx0%0%10%..., 20, 23, 69, 69
   Welcome.tsx100%50%90%23
   index.ts100%100%100%
src/theme
   index.ts100%100%100%
   theme.ts100%100%100%

@codecov-commenter
Copy link

codecov-commenter commented Mar 4, 2023

Codecov Report

Merging #190 (bfcee6d) into master (8360bcd) will decrease coverage by 1.85%.
The diff coverage is 4.16%.

📣 This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more

@@            Coverage Diff             @@
##           master     #190      +/-   ##
==========================================
- Coverage   30.98%   29.14%   -1.85%     
==========================================
  Files         181      186       +5     
  Lines        1646     1702      +56     
  Branches      331      336       +5     
==========================================
- Hits          510      496      -14     
- Misses       1091     1165      +74     
+ Partials       45       41       -4     
Impacted Files Coverage Δ
src/common/mockConstants/mockProfile.ts 100.00% <ø> (ø)
src/modules/session/api.ts 4.16% <0.00%> (-0.38%) ⬇️
src/modules/session/slice.ts 75.00% <ø> (ø)
src/modules/session/utils.ts 20.00% <0.00%> (-1.43%) ⬇️
src/pages/home/profile/IdenfyModal.tsx 0.00% <0.00%> (ø)
src/pages/home/profile/Profile.tsx 0.00% <0.00%> (ø)
src/modules/session/thunks.ts 17.50% <12.50%> (-1.25%) ⬇️
src/elements/styled/Tooltip.tsx 33.33% <33.33%> (ø)
src/theme/theme.ts 100.00% <0.00%> (ø)
src/elements/Button.tsx 84.61% <0.00%> (ø)
... and 25 more

📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more

@github-actions
Copy link

github-actions bot commented Mar 4, 2023

Coverage after merging CU-85zrjpj3n_KYC_Jonatan-Escobar into master

32.27%

Coverage Report
FileBranchesFuncsLinesUncovered Lines
src
   App.tsx100%0%0%20, 21, 22, 25
   buildParams.ts66.67%100%100%2, 9
   index.tsx100%100%0%17, 7
   reportWebVitals.ts0%0%0%..., 6, 7, 8, 9
   store.ts50%100%100%33
src/api
   index.ts100%100%100%
src/api/cloudinary
   api.ts100%50%66.67%13
   types.ts100%100%100%
src/api/lambda
   api.ts100%100%100%
src/api/newm
   api.ts100%100%100%
   utils.ts0%33.33%13.04%..., 75, 78, 79, 83
src/assets/images
   AddImage.tsx100%100%100%
   AddSong.tsx100%100%100%
   AnalyticsIcon.tsx100%100%100%
   CheckCircle.tsx100%100%100%
   CheckIcon.jsx0%0%50%1, 1, 2
   CheckboxIcon.tsx100%0%50%2
   CloseCircleFill.tsx100%0%50%2
   CloseIcon.jsx0%0%50%1, 1, 2
   DropdownAdornment.tsx100%0%0%3, 4
   EditPencilIcon.tsx100%0%0%1, 2
   FacebookIcon.tsx100%100%100%
   FoldersIcon.jsx100%100%100%
   InfoCircleLine.tsx100%0%0%1, 2
   LinkedInIcon.tsx100%100%100%
   LogoutIcon.tsx100%100%100%
   NEWM-logo-sm-inverse.tsx100%100%100%
   NEWMLogo.tsx100%100%100%
   Owner.tsx100%0%50%2
   PendingBadge.tsx100%100%100%
   PeopleIcon.tsx100%100%100%
   PlayButton.tsx100%0%0%3, 4
   SoundWave.tsx100%0%0%1, 2
   StarIcon.tsx100%100%100%
   TimeCircleLine.tsx100%0%0%1, 2
   UploadIcon.tsx100%100%100%
   VerticalEllipsis.tsx100%0%0%1, 2
   WalletIcon.tsx100%100%100%
src/common
   BrowserRouter.tsx100%0%0%18, 19, 20, 25, 27
   apiUtils.ts0%66.67%36.36%..., 16, 16, 17, 20
   fileUtils.ts0%0%15.38%..., 26, 27, 28, 31
   formUtils.ts16.67%20%42.86%..., 31, 31, 31, 41
   history.ts100%100%100%
   hooks.ts47.06%81.82%87.50%..., 68, 78, 80, 80
   index.ts100%100%100%
   storybookUtils.tsx100%0%50%7
   testUtils.tsx66.67%100%100%26
   types.ts100%100%100%
   urlUtils.ts100%100%100%
src/common/mockConstants
   index.ts100%100%100%
   mockFile.ts100%0%100%
   mockOwnersData.ts100%100%100%
   mockProfile.ts100%100%100%
   mockRoyalties.ts100%0%0%1, 22, 7, 8
   mockSession.ts100%100%100%
   mockSong.ts100%100%100%
   mockSongRoyalties.ts100%100%100%
   mockTransactions.ts100%100%100%
   mockWallet.ts100%0%66.67%16, 23
src/components
   Background.tsx100%0%75%35
   FacebookLogin.tsx75%100%80%21, 22, 30
   FadeTransition.tsx0%0%28.57%..., 22, 24, 7, 7
   GoogleLogin.tsx75%100%90.91%28, 29
   IconMessage.tsx100%100%100%
   ImageUpload.tsx61.90%80%95.45%..., 87, 87, 94, 98
   LinkedInLogin.tsx100%50%83.33%24
   Modal.tsx0%0%12.50%..., 28, 31, 33, 36
   NEWMLogo.tsx100%0%50%5
   Popup.tsx100%0%60%13, 15
   PrivateRoute.tsx0%0%25%11, 12, 14, 14, 14
   ResponsiveNEWMLogo.tsx50%100%100%12, 13
   SearchBox.tsx0%100%100%14
   SquareGridCard.tsx100%0%66.67%24
   TableDropdownSelect.tsx100%0%14.29%..., 30, 32, 33, 35
   TablePagination.tsx50%100%100%40, 62
   Toast.tsx0%0%8.33%..., 27, 77, 77, 9
   UploadImage.tsx55.56%44.44%43.75%..., 80, 80, 81, 84
   UploadSong.tsx50%16.67%30%..., 57, 60, 91, 92
   ViewPDF.tsx0%0%5.56%..., 66, 81, 81, 95
   index.ts100%100%100%
src/components/createProfile
   AddProfileInformation.tsx70.59%83.33%87.50%..., 49, 50, 79, 98
src/components/form
   CheckboxField.tsx0%0%0%13, 16, 19, 19, 9
   DropdownSelectField.tsx0%0%33.33%11, 14, 14, 9
   FilteredTagsField.tsx100%83.33%90.91%31
   GradientTextInputField.tsx50%50%66.67%19, 20, 26
   PasswordInputField.tsx100%100%100%
   SwitchField.tsx100%0%25%14, 17, 19
   TextAreaField.tsx0%0%33.33%12, 14, 14, 9
   TextInputField.tsx50%100%100%13
   UploadImageField.tsx0%0%16.67%..., 19, 20, 21, 21
   UploadSongField.tsx0%0%16.67%..., 17, 18, 19, 19
   WizardForm.tsx9.09%71.43%52%..., 97, 97, 97, 98
src/components/home
   LogoutButton.tsx50%50%83.33%11, 16
   SideBarHeader.tsx100%100%100%
   SideBarNavLink.tsx100%100%100%
src/components/library
   IconStatus.tsx0%0%50%18, 19, 22
src/components/stories
   form.stories.tsx100%0%0%..., 45, 49, 50, 62
src/components/styled
   DashedOutline.ts100%100%100%
   ErrorMessage.ts100%100%100%
   PaperInput.ts100%100%100%
   ProfileImage.ts100%100%100%
   SolidOutline.ts100%100%100%
   StyledPagination.tsx100%100%100%
src/components/uploadSong
   SelectWalletItem.tsx100%0%50%16
src/elements
   Alert.tsx0%0%50%17, 18, 21
   Button.tsx76.92%100%100%106, 112, 112
   Checkbox.tsx0%0%50%21, 57, 57
   DatePickerInput.tsx100%0%33.33%11, 13
   DropdownSelect.tsx80%100%92.86%110, 110, 94, 95
   GradientTextInput.tsx93.33%100%100%111
   Link.tsx0%0%50%11, 14
   Switch.tsx0%0%42.86%..., 59, 71, 71, 77
   TextArea.tsx0%0%16.67%..., 90, 93, 98, 98
   TextInput.tsx81.82%66.67%83.33%..., 86, 87, 90, 99
   Typography.tsx100%100%100%
   index.ts100%100%100%
src/elements/skeletons
   TableSkeleton.tsx0%0%25%..., 14, 16, 30, 44
src/elements/stories
   button.stories.tsx100%0%0%..., 54, 70, 71, 9
   dropdownSelect.stories.tsx100%0%0%19, 20, 4
   gradientTextInput.stories.tsx100%0%0%10, 11, 13, 14, 17
   textInput.stories.tsx100%0%0%11, 12
   typography.stories.tsx100%0%0%..., 21, 40, 41, 9
src/elements/styled
   Dialog.ts100%100%100%
   GradientTypography.ts100%100%100%
   HorizontalLine.ts100%100%100%
   Tooltip.tsx100%0%33.33%16, 8
src/modules/content
   api.ts100%33.33%37.50%12, 13, 14, 17, 9
   index.ts100%100%100%
   selectors.ts100%0%50%5
   slice.ts100%0%60%59, 60
   types.ts100%100%100%
src/modules/playlist
   index.ts100%100%100%
   selectors.ts100%0%50%6
   slice.ts100%100%100%
   types.ts100%100%100%
src/modules/session
   api.ts0%4.76%4.17%..., 91, 92, 93, 95
   index.ts100%100%100%
   selectors.ts100%100%100%
   slice.ts100%0%75%29
   thunks.ts0%0%17.95%..., 91, 91, 92, 95
   types.ts100%100%100%
   utils.ts100%0%20%..., 28, 29, 31, 8
src/modules/song
   api.ts100%12.50%16.67%..., 83, 84, 86, 93
   index.ts100%100%100%
   selectors.ts100%0%50%4
   slice.ts100%0%50%15, 18, 21
   thunks.ts0%0%6.98%..., 77, 80, 87, 92
   types.ts100%100%100%
src/modules/ui
   index.ts100%100%100%
   selectors.ts100%0%100%
   slice.ts100%0%33.33%..., 19, 22, 23, 24
   types.ts100%100%100%
src/modules/wallet
   index.ts100%100%100%
   selectors.ts100%0%50%4
   slice.ts100%0%60%13, 14
   types.ts100%100%100%
   utils.ts0%0%20.45%..., 96, 99, 99, 99
src/pages/createProfile
   Begin.tsx100%0%0%..., 18, 7, 8, 9
   Complete.tsx100%0%0%6, 7, 9
   CreateProfile.tsx100%0%0%..., 39, 48, 49, 52
   SelectGenre.tsx100%0%0%6, 7, 9
   SelectNickname.tsx100%0%0%4, 5
   SelectRole.tsx100%0%0%11, 7, 8, 9
   index.ts100%100%100%
src/pages/forgotPassword
   ForgotPassword.tsx100%0%0%..., 30, 33, 34, 37
   InitiateReset.tsx100%0%0%11, 7, 8, 9
   ResetPassword.tsx0%0%0%..., 21, 7, 8, 9
   VerifyEmail.tsx0%0%0%..., 25, 69, 69, 9
   index.ts100%100%100%
src/pages/home
   Home.tsx100%0%0%..., 24, 27, 29, 54
   SideBar.tsx37.50%8.33%31.25%..., 47, 75, 87, 94
   index.ts100%100%100%
src/pages/home/analytics
   Analytics.tsx100%0%0%5, 6
src/pages/home/library
   Discography.tsx0%0%0%..., 97, 97, 97, 98
   EditSong.tsx0%0%0%..., 55, 60, 72, 72
   Library.tsx100%0%0%7, 8
   Mint.tsx0%0%0%..., 71, 79, 94, 94
   MintingStatus.tsx0%0%0%..., 34, 34, 35, 43
   NoSongsYet.tsx100%0%0%10, 32, 7, 8
   SongInfo.tsx0%0%0%..., 81, 81, 81, 81
   SongList.tsx0%0%0%..., 89, 90, 91, 91
src/pages/home/owners
   NoOwnersYet.tsx100%0%50%7
   Owners.tsx57.14%100%86.36%..., 50, 57, 58, 63
   OwnersTable.tsx66.67%75%88.89%..., 38, 55, 68, 70
src/pages/home/profile
   IdenfyModal.tsx0%0%0%..., 40, 43, 45, 45
   Profile.tsx0%0%0%..., 96, 96, 99, 99
src/pages/home/uploadSong
   AddOwner.tsx100%0%0%..., 146, 155, 159, 9
   AddOwnerModal.tsx0%0%0%..., 41, 41, 48, 66
   ConfirmAgreement.tsx0%0%0%..., 94, 94, 94, 94
   MintSong.tsx0%0%0%..., 83, 91, 96, 96
   MintSongModal.tsx0%0%0%..., 64, 65, 79, 96
   SongInfo.tsx0%0%0%..., 19, 20, 21, 23
   UploadSong.tsx0%0%0%..., 57, 58, 61, 70
src/pages/home/wallet
   AllCaughtUp.tsx100%0%0%5, 6
   Portfolio.tsx0%0%0%..., 52, 53, 64, 9
   SongRoyaltiesList.tsx0%0%0%..., 92, 92, 92, 93
   TabbedContainer.tsx0%0%0%..., 64, 66, 67, 70
   TransactionsList.tsx0%0%0%..., 98, 99, 99, 99
   UnclaimedRoyalties.tsx100%0%0%12, 9
   Wallet.tsx100%0%0%10, 9
src/pages/login
   Login.tsx0%0%0%..., 63, 86, 86, 94
   index.ts100%100%100%
src/pages/signUp
   SignUp.tsx100%33.33%80%44, 56
   Verification.tsx0%0%10%..., 20, 23, 69, 69
   Welcome.tsx100%50%90%23
   index.ts100%100%100%
src/theme
   index.ts100%100%100%
   theme.ts100%100%100%

@github-actions
Copy link

github-actions bot commented Mar 4, 2023

Coverage after merging CU-85zrjpj3n_KYC_Jonatan-Escobar into master

31.09%

Coverage Report
FileBranchesFuncsLinesUncovered Lines
src
   App.tsx100%0%0%20, 21, 22, 25
   buildParams.ts66.67%100%100%2, 9
   index.tsx100%100%0%17, 7
   reportWebVitals.ts0%0%0%..., 6, 7, 8, 9
   store.ts50%100%100%33
src/api
   index.ts100%100%100%
src/api/cloudinary
   api.ts100%50%66.67%13
   types.ts100%100%100%
src/api/lambda
   api.ts100%100%100%
src/api/newm
   api.ts100%100%100%
   utils.ts0%33.33%13.04%..., 75, 78, 79, 83
src/assets/images
   AddImage.tsx100%100%100%
   AddSong.tsx100%100%100%
   AnalyticsIcon.tsx100%100%100%
   CheckCircle.tsx100%100%100%
   CheckIcon.jsx0%0%50%1, 1, 2
   CheckboxIcon.tsx100%0%50%2
   CloseCircleFill.tsx100%0%50%2
   CloseIcon.jsx0%0%50%1, 1, 2
   DropdownAdornment.tsx100%0%0%3, 4
   EditPencilIcon.tsx100%0%0%1, 2
   FacebookIcon.tsx100%100%100%
   FoldersIcon.jsx100%100%100%
   InfoCircleLine.tsx100%0%0%1, 2
   LinkedInIcon.tsx100%100%100%
   LogoutIcon.tsx100%100%100%
   NEWM-logo-sm-inverse.tsx100%100%100%
   NEWMLogo.tsx100%100%100%
   Owner.tsx100%0%50%2
   PendingBadge.tsx100%100%100%
   PeopleIcon.tsx100%100%100%
   PlayButton.tsx100%0%0%3, 4
   SoundWave.tsx100%0%0%1, 2
   StarIcon.tsx100%100%100%
   TimeCircleLine.tsx100%0%0%1, 2
   UploadIcon.tsx100%100%100%
   VerticalEllipsis.tsx100%0%0%1, 2
   WalletIcon.tsx100%100%100%
src/common
   BrowserRouter.tsx100%0%0%18, 19, 20, 25, 27
   apiUtils.ts0%66.67%36.36%..., 16, 16, 17, 20
   fileUtils.ts0%0%15.38%..., 26, 27, 28, 31
   formUtils.ts16.67%20%42.86%..., 31, 31, 31, 41
   history.ts100%100%100%
   hooks.ts47.06%81.82%87.50%..., 68, 78, 80, 80
   index.ts100%100%100%
   storybookUtils.tsx100%0%50%7
   testUtils.tsx66.67%100%100%26
   types.ts100%100%100%
   urlUtils.ts100%100%100%
src/common/mockConstants
   index.ts100%100%100%
   mockFile.ts100%0%100%
   mockOwnersData.ts100%100%100%
   mockProfile.ts100%100%100%
   mockRoyalties.ts100%0%0%1, 22, 7, 8
   mockSession.ts100%100%100%
   mockSong.ts100%100%100%
   mockSongRoyalties.ts100%100%100%
   mockTransactions.ts100%100%100%
   mockWallet.ts100%0%66.67%16, 23
src/components
   Background.tsx100%0%75%35
   FacebookLogin.tsx75%100%80%21, 22, 30
   FadeTransition.tsx0%0%28.57%..., 22, 24, 7, 7
   GoogleLogin.tsx75%100%90.91%28, 29
   IconMessage.tsx100%100%100%
   LinkedInLogin.tsx100%50%83.33%24
   Modal.tsx0%0%12.50%..., 28, 31, 33, 36
   NEWMLogo.tsx100%0%50%5
   Popup.tsx100%0%60%13, 15
   PrivateRoute.tsx0%0%25%11, 12, 14, 14, 14
   ResponsiveNEWMLogo.tsx50%100%100%12, 13
   SearchBox.tsx0%100%100%14
   SquareGridCard.tsx100%0%66.67%24
   TableDropdownSelect.tsx100%0%14.29%..., 30, 32, 33, 35
   TablePagination.tsx50%100%100%40, 62
   Toast.tsx0%0%8.33%..., 27, 77, 77, 9
   UploadImage.tsx62.50%44.44%46.67%..., 74, 74, 75, 78
   UploadSong.tsx60%16.67%33.33%..., 56, 88, 89, 97
   ViewPDF.tsx0%0%5.56%..., 66, 81, 81, 95
   index.ts100%100%100%
src/components/createProfile
   AddProfileInformation.tsx70.59%83.33%87.50%..., 49, 50, 79, 98
src/components/form
   CheckboxField.tsx0%0%33.33%13, 16, 19, 19
   DropdownSelectField.tsx0%0%33.33%11, 14, 14, 9
   FilteredTagsField.tsx100%83.33%90.91%31
   GradientTextInputField.tsx50%50%66.67%19, 20, 26
   PasswordInputField.tsx100%100%100%
   SwitchInputField.tsx100%0%25%17, 20, 22
   TextAreaField.tsx0%0%33.33%12, 14, 14, 9
   TextInputField.tsx50%100%100%13
   UploadImageField.tsx0%0%16.67%..., 19, 20, 21, 21
   UploadSongField.tsx0%0%16.67%..., 17, 18, 19, 19
   WizardForm.tsx9.09%71.43%52%..., 97, 97, 97, 98
src/components/home
   LogoutButton.tsx50%50%83.33%11, 16
   SideBarHeader.tsx100%100%100%
   SideBarNavLink.tsx100%100%100%
src/components/library
   IconStatus.tsx0%0%50%18, 19, 22
src/components/minting
   AddOwnerModal.tsx0%0%0%..., 48, 48, 55, 73
   ConfirmContract.tsx0%0%14.29%..., 77, 86, 96, 96
   Creditors.tsx100%0%20%25, 27, 30, 49
   Owners.tsx100%0%25%21, 24, 64
   SelectCoCreators.tsx0%0%0%..., 81, 83, 89, 89
src/components/stories
   form.stories.tsx100%0%0%..., 45, 49, 50, 62
src/components/styled
   DashedOutline.ts100%100%100%
   ErrorMessage.ts100%100%100%
   PaperInput.ts100%100%100%
   ProfileImage.ts100%100%100%
   SolidOutline.ts100%100%100%
   StyledPagination.tsx100%100%100%
src/components/uploadSong
   SelectWalletItem.tsx100%0%50%16
src/elements
   Alert.tsx0%0%66.67%23, 24, 28
   Button.tsx75%100%100%118, 124, 124
   Checkbox.tsx0%0%50%21, 57, 57
   DatePickerInput.tsx100%0%33.33%11, 13
   DropdownSelect.tsx80%100%92.86%110, 110, 94, 95
   GradientTextInput.tsx93.33%100%100%111
   Link.tsx0%0%50%11, 14
   Switch.tsx0%0%42.86%..., 59, 71, 71, 77
   SwitchInput.tsx0%0%16.67%..., 37, 37, 37, 44
   TextArea.tsx0%0%16.67%..., 90, 93, 98, 98
   TextInput.tsx81.82%66.67%83.33%..., 98, 98, 98, 99
   Typography.tsx100%100%100%
   index.ts100%100%100%
src/elements/skeletons
   TableSkeleton.tsx0%0%25%..., 14, 16, 30, 44
src/elements/stories
   button.stories.tsx100%0%0%..., 35, 51, 52, 9
   dropdownSelect.stories.tsx100%0%0%19, 20, 4
   gradientTextInput.stories.tsx100%0%0%10, 11, 13, 14, 17
   textInput.stories.tsx100%0%0%11, 12
   typography.stories.tsx100%0%0%..., 21, 40, 41, 9
src/elements/styled
   Dialog.ts100%100%100%
   GradientTypography.ts100%100%100%
   HorizontalLine.ts100%100%100%
   Tooltip.tsx100%0%33.33%16, 8
src/modules/content
   api.ts100%33.33%37.50%12, 13, 14, 17, 9
   index.ts100%100%100%
   selectors.ts100%0%50%5
   slice.ts100%0%60%59, 60
   types.ts100%100%100%
src/modules/playlist
   index.ts100%100%100%
   selectors.ts100%0%50%6
   slice.ts100%100%100%
   types.ts100%100%100%
src/modules/session
   api.ts0%4.76%4.17%..., 91, 92, 93, 95
   index.ts100%100%100%
   selectors.ts100%100%100%
   slice.ts100%0%75%29
   thunks.ts0%0%17.95%..., 91, 91, 92, 95
   types.ts100%100%100%
   utils.ts100%0%20%..., 28, 29, 31, 8
src/modules/song
   api.ts100%12.50%16.67%..., 83, 84, 86, 93
   index.ts100%100%100%
   selectors.ts100%0%50%4
   slice.ts100%0%50%15, 18, 21
   thunks.ts0%0%6.98%..., 76, 79, 86, 91
   types.ts100%100%100%
src/modules/ui
   index.ts100%100%100%
   selectors.ts100%0%100%
   slice.ts100%0%33.33%..., 19, 22, 23, 24
   types.ts100%100%100%
src/modules/wallet
   index.ts100%100%100%
   selectors.ts100%0%50%4
   slice.ts100%0%60%13, 14
   types.ts100%100%100%
   utils.ts0%0%20.45%..., 96, 99, 99, 99
src/pages/createProfile
   Begin.tsx100%0%0%..., 18, 7, 8, 9
   Complete.tsx100%0%0%6, 7, 9
   CreateProfile.tsx100%0%0%..., 39, 48, 49, 52
   SelectGenre.tsx100%0%0%6, 7, 9
   SelectNickname.tsx100%0%0%4, 5
   SelectRole.tsx100%0%0%11, 7, 8, 9
   index.ts100%100%100%
src/pages/forgotPassword
   ForgotPassword.tsx100%0%0%..., 30, 33, 34, 37
   InitiateReset.tsx100%0%0%11, 7, 8, 9
   ResetPassword.tsx0%0%0%..., 21, 7, 8, 9
   VerifyEmail.tsx0%0%0%..., 25, 69, 69, 9
   index.ts100%100%100%
src/pages/home
   Home.tsx100%0%0%..., 24, 27, 29, 54
   SideBar.tsx37.50%8.33%31.25%..., 47, 75, 87, 94
   index.ts100%100%100%
src/pages/home/analytics
   Analytics.tsx100%0%0%5, 6
src/pages/home/library
   Discography.tsx0%0%0%..., 97, 97, 97, 98
   EditSong.tsx0%0%0%..., 55, 60, 72, 72
   Library.tsx100%0%0%7, 8
   MintSong.tsx0%0%0%..., 83, 85, 93, 98
   MintingStatus.tsx0%0%0%..., 34, 34, 35, 43
   NoSongsYet.tsx100%0%0%10, 32, 7, 8
   SongInfo.tsx0%0%0%..., 81, 81, 81, 81
   SongList.tsx0%0%0%..., 89, 90, 91, 91
src/pages/home/owners
   NoOwnersYet.tsx100%0%50%7
   Owners.tsx57.14%100%86.36%..., 50, 57, 58, 63
   OwnersTable.tsx66.67%75%88.89%..., 38, 55, 68, 70
src/pages/home/profile
   IdenfyModal.tsx0%0%0%..., 40, 43, 45, 45
   Profile.tsx0%0%0%..., 96, 96, 99, 99
src/pages/home/uploadSong
   AddOwner.tsx100%0%0%..., 146, 155, 159, 9
   ConfirmAgreement.tsx0%0%0%..., 46, 46, 46, 46
   MintSongModal.tsx0%0%0%..., 64, 65, 79, 96
   SongInfo.tsx0%0%0%..., 40, 43, 47, 51
   UploadSong.tsx0%0%0%..., 80, 81, 84, 91
src/pages/home/wallet
   AllCaughtUp.tsx100%0%0%5, 6
   Portfolio.tsx0%0%0%..., 52, 53, 64, 9
   SongRoyaltiesList.tsx0%0%0%..., 92, 92, 92, 93
   TabbedContainer.tsx0%0%0%..., 64, 66, 67, 70
   TransactionsList.tsx0%0%0%..., 98, 99, 99, 99
   UnclaimedRoyalties.tsx100%0%0%12, 9
   Wallet.tsx100%0%0%10, 9
src/pages/login
   Login.tsx0%0%0%..., 63, 86, 86, 94
   index.ts100%100%100%
src/pages/signUp
   SignUp.tsx100%33.33%80%44, 56
   Verification.tsx0%0%10%..., 20, 23, 69, 69
   Welcome.tsx100%50%90%23
   index.ts100%100%100%
src/theme
   index.ts100%100%100%
   theme.ts100%100%100%

@escobarjonatan
Copy link
Contributor Author

Reference discussion: #190 (comment)

It's not letting me comment on the actual thread but Trevor and i had a slack discussion where we discussed option #1 more in depth and this is the path forward:

After the user finishes the process through iFrame or other device:
On success:

  1. They should be redirected to success url w/ params?idenfyVerification="pass".(configured through iDenfy console)
  2. FE starts pinging BE services for 20 min(1 min interval) or until user status is verified, whichever comes first.

On fail:

  1. They should be redirected to fail url w/ params?idenfyVerification="fail".
  2. We dispatch a toast message letting them know.

Before we do this, we need to implement redux-persist.

@escobarjonatan escobarjonatan merged commit 440a31f into master Mar 6, 2023
@escobarjonatan escobarjonatan deleted the CU-85zrjpj3n_KYC_Jonatan-Escobar branch March 6, 2023 23:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants