171 lines
5.0 KiB
Markdown
171 lines
5.0 KiB
Markdown
# Testing Scenarios
|
|
|
|
## Current Status
|
|
|
|
The code is working! It correctly detects when no Bluetooth printer is configured and attempts to fall back to standard print.
|
|
|
|
## Enhanced Logging
|
|
|
|
Added comprehensive logging to track:
|
|
1. When `originalPrintHtml` is called
|
|
2. What it returns
|
|
3. Any errors that occur
|
|
4. Connection status checks
|
|
5. Reconnection attempts
|
|
|
|
## Test Scenarios
|
|
|
|
### Scenario 1: No Bluetooth Printer Configured ✅
|
|
**Current behavior:**
|
|
```
|
|
[BluetoothPrint] printHtml() called
|
|
[BluetoothPrint] Web Bluetooth API available
|
|
[BluetoothPrint] No Bluetooth printer configured, using standard print
|
|
[BluetoothPrint] Calling originalPrintHtml with: [element]
|
|
[BluetoothPrint] originalPrintHtml returned: [result]
|
|
```
|
|
|
|
**Expected:** Browser print dialog should open
|
|
**If not working:** Check the console for errors from `originalPrintHtml`
|
|
|
|
### Scenario 2: Bluetooth Printer Configured but Not Connected
|
|
**Steps:**
|
|
1. Connect to printer once (saves config)
|
|
2. Disconnect printer or turn it off
|
|
3. Try to print receipt
|
|
|
|
**Expected logs:**
|
|
```
|
|
[BluetoothPrint] Bluetooth printer configured: RPP02N
|
|
[BluetoothPrint] Current connection status: disconnected
|
|
[BluetoothPrint] Printer not connected, attempting to reconnect...
|
|
[BluetoothPrint] Reconnection failed: [error]
|
|
[BluetoothPrint] Falling back to standard print
|
|
```
|
|
|
|
**Expected:** Browser print dialog should open
|
|
|
|
### Scenario 3: Bluetooth Printer Connected ✅
|
|
**Steps:**
|
|
1. Click Bluetooth icon
|
|
2. Connect to RPP02N
|
|
3. Make a sale and print
|
|
|
|
**Expected logs:**
|
|
```
|
|
[BluetoothPrint] Bluetooth printer configured: RPP02N
|
|
[BluetoothPrint] Current connection status: connected
|
|
[BluetoothPrint] Attempting bluetooth print...
|
|
[BluetoothPrint] Starting bluetooth print from HTML...
|
|
[BluetoothPrint] Parsing receipt data from HTML...
|
|
[BluetoothPrint] Parsed X lines from HTML
|
|
[BluetoothPrint] Generating ESC/POS commands...
|
|
[BluetoothPrint] Generated XXX bytes of ESC/POS data
|
|
[BluetoothPrint] Sending to printer...
|
|
[BluetoothPrint] Print completed successfully
|
|
```
|
|
|
|
**Expected:** Receipt prints to Bluetooth printer
|
|
|
|
### Scenario 4: Bluetooth Print Fails Mid-Process
|
|
**What happens:** Connection drops during print
|
|
|
|
**Expected logs:**
|
|
```
|
|
[BluetoothPrint] Attempting bluetooth print...
|
|
[BluetoothPrint] Bluetooth print failed: [error]
|
|
[BluetoothPrint] Falling back to standard print after error
|
|
[BluetoothPrint] Fallback print returned: [result]
|
|
```
|
|
|
|
**Expected:** Browser print dialog opens as fallback
|
|
|
|
## What to Test Now
|
|
|
|
### Test 1: Connect Bluetooth Printer
|
|
1. Update module: `./odoo-bin -u pos_bluetooth_thermal_printer -d your_database`
|
|
2. Clear browser cache
|
|
3. Click Bluetooth icon in POS
|
|
4. Scan and connect to RPP02N
|
|
5. Make a sale and print receipt
|
|
6. **Check console logs**
|
|
7. **Verify receipt prints to Bluetooth printer**
|
|
|
|
### Test 2: Standard Print Fallback
|
|
1. Disconnect Bluetooth printer (turn off or unpair)
|
|
2. Make a sale and print receipt
|
|
3. **Check console logs** - should show reconnection attempt
|
|
4. **Verify browser print dialog opens**
|
|
|
|
## Debugging Standard Print Issue
|
|
|
|
If standard print (browser dialog) doesn't open, check:
|
|
|
|
### 1. Check Console for Errors
|
|
Look for:
|
|
```
|
|
[BluetoothPrint] Error calling originalPrintHtml: [error]
|
|
[BluetoothPrint] Standard print failed: [error]
|
|
[BluetoothPrint] Fallback print also failed: [error]
|
|
```
|
|
|
|
### 2. Check originalPrintHtml Return Value
|
|
Look for:
|
|
```
|
|
[BluetoothPrint] originalPrintHtml returned: [value]
|
|
```
|
|
|
|
If it returns `undefined` or `null`, the original method might not be opening the print dialog.
|
|
|
|
### 3. Possible Issues
|
|
|
|
**Issue A: Original method doesn't exist**
|
|
- `originalPrintHtml` might be `undefined`
|
|
- Check if `PosPrinterService.prototype.printHtml` exists before patching
|
|
|
|
**Issue B: Original method needs different context**
|
|
- Might need to pass additional parameters
|
|
- Might need different `this` binding
|
|
|
|
**Issue C: Browser blocks print dialog**
|
|
- Some browsers block print dialogs not triggered by user action
|
|
- Might need user interaction first
|
|
|
|
### 4. Alternative Fallback
|
|
|
|
If `originalPrintHtml` doesn't work, we can implement a direct print fallback:
|
|
|
|
```javascript
|
|
// Direct browser print as last resort
|
|
const printWindow = window.open('', '_blank');
|
|
printWindow.document.write(el.outerHTML);
|
|
printWindow.document.close();
|
|
printWindow.print();
|
|
```
|
|
|
|
## Expected Results After Update
|
|
|
|
### With Bluetooth Printer Connected:
|
|
✅ Receipt prints to Bluetooth printer automatically
|
|
✅ No browser print dialog
|
|
✅ Console shows successful print process
|
|
|
|
### Without Bluetooth Printer:
|
|
✅ Console shows "No Bluetooth printer configured"
|
|
✅ Falls back to standard print
|
|
✅ Browser print dialog opens (or should open)
|
|
|
|
### With Bluetooth Error:
|
|
✅ Console shows error details
|
|
✅ Falls back to standard print
|
|
✅ Sale completes successfully
|
|
|
|
## Next Steps
|
|
|
|
1. **Update module**
|
|
2. **Test with Bluetooth printer connected** - Should print!
|
|
3. **Test without Bluetooth printer** - Check if standard print works
|
|
4. **Share console logs** if any issues
|
|
|
|
The Bluetooth printing should work now when printer is connected! 🎉
|