A Url shortner React Native app
Navbar
SignIn
SignUp
Presentation
- smallLinks : Array
- Display all created small links
- Display Text if no elements
- Search by name V2
- Sort by creation Date ASC / DESC V2
- Pagination V2
- smallLinks : Array
- onLinkRemovedCallBack : (link) ⇒ ()
- it(”should display “no links, let’s create one” if no links passed”)
- it(”should display as much element as links length”)
- it(”should call onLinkRemovedCallBack when clicking on the remove icon of the first element”)
- it(”should call onLinkRemovedCallBack with link as param when clicking on the remove icon of the first element”)
- Name
- Long url ( hidden by default )
- Short Url
- “Edit” button
- “Remove” button
- Activated / Deactivated V2
- Share Button V2
- Tags V2
- smallLink : SmallLinkType
- editCallback : SmallLink type ⇒ void
- removeCallBack : SmallLink type ⇒ void
- shareCallBack : SmallLink type ⇒ void
- it(”should display the name “Link name” when passed as props)
- it(”should display the long url “http://www.google.fr” when passed as props)
- it(”should display the small link as activated if activated is true”)
- it(”should display the small link as deactivated if activated is false”)
- it(”should display the correct tags when passed as props)
- if(”should display “no tags” if no tag in current small link)
- it(”should have a button to edit this Small Link”)
- it(”should call editCallback when the button is clicked”)
- it(”should call editCallback when the edit button is clicked with the smallLink passed as props”)
- it(”should have a button to remove this Small Link”)
- it(”should call the removeCallBack when the remove button is clicked”)
- it(”should call the removeCallBack when the remove button is clicked with the smallLink passed as props”)
- it(”should have a share button to share this Small Link”)
- it(”should call shareCallBack when the share button is clicked”)
- it(”should call shareCallBack when the share button is clicked with the smallLink passed as props”)
- Name
- Long url
- Short Url ( can’t be edited )
- Activated / Deactivated V2
- Validate button
- Cancel button
- Add remove tags V2
- smallLink : SmallLinkType
- validationCallback : SmallLink type ⇒ void
- cancelCallBack
- it(”should pre-fill the name “Link name” when passed as props)
- it(”should pre-fill the long url “http://www.google.fr” when passed as props)
- it(”should display the small link as activated if activated is true”)
- it(”should display the small link as deactivated if activated is false”)
- it(”should display the correct tags when passed as props)
- if(”should display “no tags” if no tag in current small link)
- it(”should call validationCallback when clicking on validate”)
- it(”should call validationCallback with exactly the same smallLink when clicking on validate without having changing anything”)
- it(”should not let the user validate and display a message if link name is empty”)
- it(”should not let the user validate and display a message if link long Url is empty”)
- it(”should call cancelCallBack when clicking on cancel”)
- it(”changing the url should remove the old short link and have changed the current one”)
- Name
- Long url
- Activated / Deactivated V2
- Validate button
- Cancel button
- Add tags V2
- validationCallback : { name, longUrl, Activated, tags }
- CancelCallBack
- it(”should have an empty name input”)
- it(”should have a name input with a placeholder of “name” )
- it(”should have a empty Long url input” )
- it(”should have a Long url input with a placeholder of “Long url ” )
- it(”should have an activated switch checked by default”)
- it(”should not call validationCallback with an empty name”)
- it(”should display an error when validating with an empty name”)
- it(”should not call validationCallback with an empty Long url”)
- it(”should display an error when validating with an empty Long url”)
- it(”should call validationCallback with all input entered and clicking on validate button”)
- it(”should call validationCallback with {name :”toto”, longUrl : “https://toto.com”, activated : false, tags : [”tag1”,”tag2”]} when clicking on validate button and having entered toto as name https://toto.com as Long url, activated as false, and tags as tag1, tag2 ”)
- Popin
- Validation text
- Validate button
- Cancel Button
- title : string
- validationText : string
- cancelText : string
- validationCallback : smallLink : SmallLinkType ⇒ void
- CancelCallBack : () ⇒ void
- it(”should have a title”)
- it(”should have a title with a value of “title” if “title” is passed as props”)
- it(”should have a validate button”)
- it(”should have a validate button with a value of “validate” if “validate” is passed as validationText props”)
- it(”should have a cancel button”)
- it(”should have a cancel button with a value of “cancel” if “cancel” is passed as cancelText props”)
- it(”should call CancelCallBack when clicking on cancel button”)
- it(”should call validationCallback when clicking on validate button”)
- Input
- Add button
- placeholder : string
- validationText : string
- onAddTagCallBack : (tag) ⇒ ()
- it('should render the Tag Creation Input ')
- it('should have a placeholder of "enter new tag" when passed as placeholder prop')
- it('should have a button with text "add tag" when passed as validationText prop')
- it('should not be able to add a tag if the input is empty')
- it('should be able to add a tag if the input is not empty')
- When in creation mode : display the tag with a cross on the right
- When in display mode : display the tag
- text
- isCreation : boolean
- onRemoveTagCallBack: tag ⇒ void
- it('should render the Tag component')
- it('should display text "tag1" if text value is "tag1"')
- it('should display a cross if text value is “tag1” and isCreation is true')
- it('should not display a cross if text value is “tag1” and isCreation is false')
- it('should not display anything if text is empty')
- it('should not display anything if text is null')
- it('should call removeTagCallBack with "tag1" if text value is "tag1", isCreation is true and the cross is clicked')
- List of tags handling creation and display mode
- Tags : Array
- isCreationMode : boolean
- onTagRemoveCallBack : (tag) ⇒ ()
- it('should render the TagsComponent component')
- it('should find each element of the UI in creation mode')
- it('should find each element of the UI in display mode')
- it('it should not add two times the same tag')
- Main component of the tags
- title : string
- tags : Array
- isCreation : boolean
- onListUpdated : (tags) ⇒ ()
- it('should render the TagsComponent component')
- it('should find each element of the UI in creation mode')
- it('should find each element of the UI in display mode')
- it('it should not add two times the same tag')
- it('should display the Home Page ')
- it('should Go to Tags ')
- it('should add one single tag ')
- it('should remove a tag ')
- id
- owner ( User )
- name ( Unique ⇒ V2 )
- longUrl
- smallUrl
- creation date
- Activated / Deactivated V2
- tags ( V2 )