mirror of
https://github.com/Kareadita/Kavita.git
synced 2025-05-31 20:24:27 -04:00
* 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
46 lines
1.6 KiB
TypeScript
46 lines
1.6 KiB
TypeScript
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; |