Files
TurboTrades/TRANSACTIONS_TROUBLESHOOTING.md
2026-01-10 04:57:43 +00:00

247 lines
7.3 KiB
Markdown

# Transactions Troubleshooting Guide
## Issue: No Transactions Showing
If you're seeing no transactions on the `/transactions` page, follow these steps:
## Step 1: Verify You're Logged In
The transactions page requires authentication. Make sure you:
1. **Are logged in via Steam** on the frontend
2. **Have a valid JWT token** in your cookies
3. **The session is active** in the database
### Quick Check:
```javascript
// Open browser console (F12) and run:
console.log(document.cookie);
// Should show: accessToken=... and refreshToken=...
```
If no tokens are present, **log in again via Steam**.
## Step 2: Clear Old Mock Sessions
The seed script initially created **mock sessions with fake tokens**. These won't work because they're not valid JWTs.
### Delete Mock Sessions:
```javascript
// In MongoDB or using a script:
db.sessions.deleteMany({ token: /^mock_token_/ });
```
### Or via Node:
```bash
node -e "
import('mongoose').then(async mongoose => {
await mongoose.connect(process.env.MONGODB_URI || 'mongodb://localhost:27017/turbotrades');
const Session = (await import('./models/Session.js')).default;
const result = await Session.deleteMany({ token: /^mock_token_/ });
console.log('Deleted', result.deletedCount, 'mock sessions');
await mongoose.disconnect();
process.exit(0);
});
"
```
## Step 3: Re-Login and Re-Seed
1. **Login via Steam** on the frontend (`http://localhost:5173`)
2. **Verify you're logged in** (check profile page)
3. **Delete existing fake transactions** (optional):
```javascript
node -e "
import('mongoose').then(async mongoose => {
await mongoose.connect(process.env.MONGODB_URI || 'mongodb://localhost:27017/turbotrades');
const Transaction = (await import('./models/Transaction.js')).default;
const result = await Transaction.deleteMany({});
console.log('Deleted', result.deletedCount, 'transactions');
await mongoose.disconnect();
process.exit(0);
});
"
```
4. **Run the seed script again**:
```bash
node seed-transactions.js
```
The seed script now **only uses real sessions** with valid JWT tokens.
## Step 4: Verify Transactions in Database
```bash
node -e "
import('mongoose').then(async mongoose => {
await mongoose.connect(process.env.MONGODB_URI || 'mongodb://localhost:27017/turbotrades');
const User = (await import('./models/User.js')).default;
const Transaction = (await import('./models/Transaction.js')).default;
const user = await User.findOne().sort({ createdAt: -1 });
console.log('User:', user.username, '- ID:', user._id);
const transactions = await Transaction.find({ userId: user._id });
console.log('Transactions:', transactions.length);
if (transactions.length > 0) {
console.log('Sample:', transactions[0].type, transactions[0].amount);
}
await mongoose.disconnect();
process.exit(0);
});
"
```
## Step 5: Check Browser Console
Open browser DevTools (F12) and look for:
```
🔄 Fetching transactions...
✅ Transaction response: { success: true, transactions: [...], stats: {...} }
📊 Loaded 28 transactions
```
### Common Errors:
**401 Unauthorized:**
- Not logged in or token expired
- Solution: Log in again via Steam
**500 Server Error:**
- Check backend console for errors
- Verify MongoDB is running
**Empty Array:**
- Transactions exist but for a different user
- Solution: Delete transactions and re-seed after logging in
## Step 6: Check Backend Console
Backend should show:
```
📊 Fetching transactions for user: 6961b31dadcc335cb645e95f
✅ Found 28 transactions
📈 Stats: { totalDeposits: ..., ... }
```
If you see:
```
✅ Found 0 transactions
```
Then transactions don't exist for your logged-in user. Re-run seed script.
## Dropdown Styling Issue
The dropdowns were using a non-existent `input-field` class. This has been **fixed** with proper Tailwind classes:
```vue
<select class="w-full px-4 py-2 bg-surface rounded-lg border border-surface-lighter text-text-primary focus:outline-none focus:ring-2 focus:ring-primary focus:border-transparent">
```
The dropdowns should now look consistent with the rest of the UI.
## Complete Reset Procedure
If all else fails, start fresh:
### 1. Stop servers:
```bash
# Kill backend and frontend
```
### 2. Clean database:
```javascript
node -e "
import('mongoose').then(async mongoose => {
await mongoose.connect(process.env.MONGODB_URI || 'mongodb://localhost:27017/turbotrades');
const Session = (await import('./models/Session.js')).default;
const Transaction = (await import('./models/Transaction.js')).default;
await Session.deleteMany({});
await Transaction.deleteMany({});
console.log('✅ Cleaned sessions and transactions');
await mongoose.disconnect();
process.exit(0);
});
"
```
### 3. Start backend:
```bash
npm run dev
```
### 4. Start frontend:
```bash
cd frontend
npm run dev
```
### 5. Login via Steam:
- Navigate to `http://localhost:5173`
- Click "Login with Steam"
- Complete OAuth flow
### 6. Verify login:
- Go to `http://localhost:5173/profile`
- Check "Active Sessions" section
- Should see your current session
### 7. Seed transactions:
```bash
node seed-transactions.js
```
### 8. View transactions:
- Navigate to `http://localhost:5173/transactions`
- Should see 20-30 transactions with colored session pills
## Expected Result
Once working, you should see:
```
┌─────────────────────────────────────────────────────────────┐
│ Transaction History 📊 Stats │
├─────────────────────────────────────────────────────────────┤
│ │
│ 💰 Deposit +$121.95 │
│ PayPal deposit │
│ 📅 2 days ago 💻 Session: [DBDBDD] 🖥️ Chrome │
│ ^^^^^^^^ │
│ (colored pill!) │
│ │
│ 🛒 Purchase -$244.67 │
│ Karambit | Fade │
│ 📅 5 days ago 💻 Session: [DBDBE1] 🖥️ Opera │
│ │
└─────────────────────────────────────────────────────────────┘
```
## Key Points
✅ **Transactions require authentication** - You must be logged in via Steam
✅ **JWT tokens are required** - Mock tokens from seed script don't work
✅ **Sessions must be real** - Created by actual Steam login
✅ **User IDs must match** - Transactions linked to the logged-in user
## Still Not Working?
Check these files for console.log output:
**Frontend:** Browser console (F12)
**Backend:** Terminal where `npm run dev` is running
Look for the debug logs added:
- `🔄 Fetching transactions...`
- `📊 Fetching transactions for user:`
- `✅ Found X transactions`
If you see API 401 errors, you need to log in again to get a valid JWT token.