# GoodRead Crawler Manual Test

This is a manual test plan for cs242-sp21 assignment2: GoodRead Crawler

## System Requirements


#### OS:
The following OS are appropriate system for running the GoodRead Crawler application and testing.
- Windows 7 or above
- Mac OS X
- Linux

#### Testing Prerequisites
Softwares/applications are required for running the test.

- Python 3
- Javascript
- React JS


## Scenes for Testing
![1](./ManualTestPictures/1(1).png)

## 1.GET function

#### Test1.1
- test content: 
    Test GET exist book data 
- expect result: 
    Successfully get book data and showing in table 
![2](./ManualTestPictures/1(5).png)

#### Test1.2
- test content: 
     Test GET exist author data 
- expect result: 
    Successfully get author data and showing in table
![3](./ManualTestPictures/1(4).png)

#### Test1.3
- test content: 
     Test GET unexist book data 
- expect result: 
     Request failed
![4](./ManualTestPictures/1(2).png)

#### Test1.4
- test content: 
     Test GET unexist author data 
- expect result: 
     Request failed
![5](./ManualTestPictures/1(3).png)

#### Test1.5
- test content: 
     Test search exist book data with id
- expect result: 
     Successfully find the data and print in table
![6](./ManualTestPictures/1(6).png)

#### Test1.6
- test content: 
     Test search exist book data with flexible search condition
- expect result: 
     Successfully find the data and showing in table
![7](./ManualTestPictures/1(7).png)

#### Test1.7
- test content: 
     Test search unexist book data 
- expect result: 
     Request failed
![8](./ManualTestPictures/1(8).png)

#### Test1.8
- test content: 
     Test using scrape in GET command
- expect result: 
     Request failed
![9](./ManualTestPictures/1(24).png)

## 2.PUT function

#### Test2.1
- test content: 
     Test PUT update data for exist book documentation
- expect result: 
     No new document is created, existing document updated
![10](./ManualTestPictures/1(9).png)
![11](./ManualTestPictures/1(10).png)
![12](./ManualTestPictures/1(12).png)

#### Test2.2
- test content: 
     Test PUT new book documentation
- expect result: 
     A new book document is created
![13](./ManualTestPictures/1(13).png)
![14](./ManualTestPictures/1(15).png)

#### Test2.3
- test content: 
     Test PUT update data for exist author documentation
- expect result: 
     No new document is created, existing document updated
![15](./ManualTestPictures/1(16).png)
![16](./ManualTestPictures/1(17).png)
![17](./ManualTestPictures/1(19).png)

#### Test2.4
- test content: 
     Test PUT new author documentation
- expect result: 
     A new author document is created
![18](./ManualTestPictures/1(20).png)
![19](./ManualTestPictures/1(22).png)


## 3.POST function

#### Test3.1
- test content: 
     Test POST book data
- expect result: 
     Successfully post new book documtent
![20](./ManualTestPictures/1(26).png)
![21](./ManualTestPictures/1(28).png)


#### Test3.2
- test content: 
     Test POST author data
- expect result: 
    Successfully post new author documtent
![22](./ManualTestPictures/1(29).png)
![23](./ManualTestPictures/1(30).png)

#### Test3.3
- test content: 
      Test Scrape data
- expect result: 
     New book and author data is added into collections
![24](./ManualTestPictures/1(23).png)
![25](./ManualTestPictures/1(25).png)

#### Test3.4
- test content: 
      Test the input form of book-type doc can be closed by click 'back' button and another form of author-type can be opened
- expect result: 
     Successfully changed the form
![26](./ManualTestPictures/1(29).png)
![27](./ManualTestPictures/1(31).png)

## 4.DELETE function

#### Test4.1
- test content: 
    Test DELETE book data by id
- expect result: 
    Successfully delete the book data
![28](./ManualTestPictures/1(34).png)
     
#### Test4.2
- test content: 
    Test DELETE author data by name
- expect result: 
    Successfully delete the author data
![29](./ManualTestPictures/1(37).png)

#### Test4.3
- test content: 
    Test DELETE unexist data
- expect result: 
    Request failed
![30](./ManualTestPictures/1(38).png)

## 5.Responsive UI Test

#### Test5.1
- test content: 
    Test main page can fit mobile device
- expect result: 
    All elements can be fitted in screen of mobile-device size
![31](./ManualTestPictures/1(40).png)

#### Test5.2
- test content: 
    Test data table can scroll
- expect result: 
    Data table can be scroll to right and left when the screen's size is not large enough
![32](./ManualTestPictures/1(41).png)
![33](./ManualTestPictures/1(42).png)
![34](./ManualTestPictures/1(43).png)