On Deck + Misc Fixes and Changes (#1215)
* Added playwright and started writing e2e tests. * To make things easy, disabled other browsers while I get confortable. Added a login flow (assumes my dev env) * More tests on login page * Lots more testing code, trying to figure out auth code. * Ensure we don't track DBs inside config * Added a new date property for when chapters are added to a series which helps with OnDeck calculations. Changed a lot of heavy api calls to use IEnumerable to stream repsonse to UI. * Fixed OnDeck with a new field for when last chapter was added on Series. This is a streamlined way to query. Updated Reading List with NormalizedTitle, CoverImage, CoverImageLocked. * Implemented the ability to read a random item in the reading list and for the reading list to be intact for order. * Tweaked the style for webtoon to not span the whole width, but use max width * When we update a cover image just send an event so we don't need to have logic for when updates occur * Fixed a bad name for entity type on cover updates * Aligned the edit collection tag modal to align with new tab design * Rewrote code for picking the first file for metadata to ensure it always picks the correct file, esp if the first chapter of a series starts with a float (1.1) * Refactored setting LastChapterAdded to ensure we do it on the Series. * Updated Chapter updating in scan loop to avoid nested for loop and an additional loop. * Fixed a bug where locked person fields wouldn't persist between scans. * Updated Contributing to reflect how to view the swagger api
This commit is contained in:
parent
912dfa8a80
commit
3bbb02f574
64 changed files with 3397 additions and 343 deletions
46
UI/Web/global-setup.ts
Normal file
46
UI/Web/global-setup.ts
Normal file
|
@ -0,0 +1,46 @@
|
|||
import { Browser, chromium, FullConfig, request } from '@playwright/test';
|
||||
|
||||
async function globalSetup(config: FullConfig) {
|
||||
let requestContext = await request.newContext();
|
||||
var token = await requestContext.post('http://localhost:5000/account/login', {
|
||||
form: {
|
||||
'user': 'Joe',
|
||||
'password': 'P4ssword'
|
||||
}
|
||||
});
|
||||
console.log(token.json());
|
||||
// Save signed-in state to 'storageState.json'.
|
||||
//await requestContext.storageState({ path: 'adminStorageState.json' });
|
||||
await requestContext.dispose();
|
||||
|
||||
requestContext = await request.newContext();
|
||||
await requestContext.post('http://localhost:5000/account/login', {
|
||||
form: {
|
||||
'user': 'nonadmin',
|
||||
'password': 'P4ssword'
|
||||
}
|
||||
});
|
||||
// Save signed-in state to 'storageState.json'.
|
||||
//await requestContext.storageState({ path: 'nonAdminStorageState.json' });
|
||||
await requestContext.dispose();
|
||||
}
|
||||
|
||||
|
||||
|
||||
// async function globalSetup (config: FullConfig) {
|
||||
// const browser = await chromium.launch()
|
||||
// await saveStorage(browser, 'nonadmin', 'P4ssword', 'storage/user.json')
|
||||
// await saveStorage(browser, 'Joe', 'P4ssword', 'storage/admin.json')
|
||||
// await browser.close()
|
||||
// }
|
||||
|
||||
async function saveStorage (browser: Browser, username: string, password: string, saveStoragePath: string) {
|
||||
const page = await browser.newPage()
|
||||
await page.goto('http://localhost:5000/account/login')
|
||||
await page.type('#username', username)
|
||||
await page.type('#password', password)
|
||||
await page.click('button[type="submit"]')
|
||||
await page.context().storageState({ path: saveStoragePath })
|
||||
}
|
||||
|
||||
export default globalSetup;
|
Loading…
Add table
Add a link
Reference in a new issue