fix: allow relative userDataDir

This commit is contained in:
Max Schmitt 2025-02-11 12:52:43 +01:00
parent 703e077f4b
commit f944809c4a
2 changed files with 16 additions and 0 deletions

View file

@ -188,6 +188,8 @@ export abstract class BrowserType extends SdkObject {
tempDirectories.push(artifactsDir);
if (userDataDir) {
if (!path.isAbsolute(userDataDir))
userDataDir = path.resolve(userDataDir);
// Firefox bails if the profile directory does not exist, Chrome creates it. We ensure consistent behavior here.
if (!await existsAsync(userDataDir))
await fs.promises.mkdir(userDataDir, { recursive: true, mode: 0o700 });

View file

@ -101,6 +101,20 @@ it('should accept userDataDir', async ({ createUserDataDir, browserType }) => {
expect(fs.readdirSync(userDataDir).length).toBeGreaterThan(0);
});
it('should accept relative userDataDir', async ({ createUserDataDir, browserType }) => {
const userDataDir = await createUserDataDir();
const cwd = process.cwd();
try {
console.log(userDataDir);
process.chdir(userDataDir);
const context = await browserType.launchPersistentContext('foobar');
expect(fs.readdirSync(path.join(userDataDir, 'foobar')).length).toBeGreaterThan(0);
await context.close();
} finally {
process.chdir(cwd);
}
});
it('should restore state from userDataDir', async ({ browserType, server, createUserDataDir, isMac, browserName }) => {
it.slow();