This repository has no description
1#!/usr/bin/env node
2
3/**
4 * Test script for OAuth migration
5 *
6 * This script temporarily switches the app to use the new OAuth implementation
7 * for testing purposes. Run with: node test-new-oauth.js
8 */
9
10const fs = require('fs');
11const path = require('path');
12
13const LAYOUT_PATH = path.join(__dirname, 'app/src/app/layout.tsx');
14const BACKUP_PATH = path.join(__dirname, 'app/src/app/layout.tsx.backup');
15
16function backupAndUpdate() {
17 try {
18 // Read the current layout file
19 const layoutContent = fs.readFileSync(LAYOUT_PATH, 'utf8');
20
21 // Create backup
22 fs.writeFileSync(BACKUP_PATH, layoutContent);
23 console.log('✅ Created backup of layout.tsx');
24
25 // Update to use new auth context
26 const updatedContent = layoutContent.replace(
27 "import { AuthProvider } from '@/lib/auth-context';",
28 "import { AuthProvider } from '@/lib/auth-context-new';"
29 );
30
31 if (updatedContent === layoutContent) {
32 console.log('⚠️ No changes needed - import not found or already updated');
33 return;
34 }
35
36 // Write updated content
37 fs.writeFileSync(LAYOUT_PATH, updatedContent);
38 console.log('✅ Updated layout.tsx to use new OAuth implementation');
39
40 console.log('\n🧪 Test Setup Complete!');
41 console.log('');
42 console.log('Next steps:');
43 console.log('1. Run: cd app && npm run dev');
44 console.log('2. Test authentication at http://localhost:3000/auth/login');
45 console.log('3. Try both Bluesky and third-party PDS handles');
46 console.log('4. When done testing, run: node restore-oauth.js');
47 console.log('');
48
49 } catch (error) {
50 console.error('❌ Error updating layout:', error.message);
51 }
52}
53
54function checkFiles() {
55 const requiredFiles = [
56 'app/src/lib/oauth-client.ts',
57 'app/src/lib/auth-context-new.tsx',
58 'app/src/lib/api-client.ts',
59 'app/src/app/auth/login/page-new.tsx',
60 'app/src/app/auth/callback/page-new.tsx'
61 ];
62
63 const missingFiles = requiredFiles.filter(file => !fs.existsSync(file));
64
65 if (missingFiles.length > 0) {
66 console.error('❌ Missing required files:');
67 missingFiles.forEach(file => console.error(` - ${file}`));
68 console.error('\nPlease ensure all new OAuth files have been created.');
69 process.exit(1);
70 }
71
72 console.log('✅ All required files found');
73}
74
75// Main execution
76console.log('🔄 Setting up OAuth migration test...\n');
77
78checkFiles();
79backupAndUpdate();