| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- import * as dotenv from 'dotenv';
- import { SiteService } from '../src/site/services/site.service';
- import { PhaseService } from '../src/site/services/phase.service';
- import { BlockService } from '../src/site/services/block.service';
- import { MongoCoreService } from '../src/mongo/mongo-core.service';
- dotenv.config();
- async function runTest() {
- const mongoCore = new MongoCoreService();
- // Simulate onModuleInit
- await (mongoCore as any).onModuleInit();
- const siteService = new SiteService(mongoCore, null as any);
- const phaseService = new PhaseService(mongoCore, null as any);
- const blockService = new BlockService(mongoCore, null as any);
- console.log('--- TEST 1: Create a New Site ---');
- const site = await siteService.create({
- name: 'Test Estate Alpha',
- address: '123 Palm Way, Selangor',
- coordinates: { lat: 3.139, lng: 101.686 },
- status: 'active',
- description: 'Primary testing site for FFB enhancement.',
- metadata: { createdAt: new Date(), updatedAt: new Date() }
- });
- console.log(`✅ Site Created: ${site._id}`);
- console.log('\n--- TEST 2: Create Phases ---');
- const phase1 = await phaseService.create({
- siteId: site._id!,
- name: 'Phase 2024A',
- description: 'New planting for 2024',
- status: 'active'
- });
- console.log(`✅ Phase 1 Created: ${phase1._id}`);
- const phase2 = await phaseService.create({
- siteId: site._id!,
- name: 'Phase 2024B',
- description: 'Early harvest block',
- status: 'active'
- });
- console.log(`✅ Phase 2 Created: ${phase2._id}`);
- console.log('\n--- TEST 3: Create Blocks ---');
- const block1 = await blockService.create({
- phaseId: phase1._id!,
- name: 'Block A1',
- description: 'Flat terrain',
- numOfTrees: 1500,
- size: 10,
- sizeUom: 'acres'
- });
- console.log(`✅ Block A1 Created: ${block1._id}`);
- const block2 = await blockService.create({
- phaseId: phase2._id!,
- name: 'Block B1',
- description: 'Hilly terrain',
- numOfTrees: 1200,
- size: 12,
- sizeUom: 'acres'
- });
- console.log(`✅ Block B1 Created: ${block2._id}`);
- console.log('\n--- TEST 4: Error Handling (Simulated) ---');
- // ... (Error handling tests same as before) ...
- console.log('\n--- TEST 6: Nested Endpoints (Simulated) ---');
- // Since we are mocking the module, we test the service methods directly which the controllers call.
- // Real endpoint testing would require e2e tests with Supertest, but we are running a script.
- // So we will verify the service filters work as expected.
- const sitePhases = await phaseService.findAll({ siteId: site._id });
- console.log(`✅ Found ${sitePhases.length} phases for site ${site._id}`);
- const phaseBlocks = await blockService.findAll({ phaseId: phase1._id });
- console.log(`✅ Found ${phaseBlocks.length} blocks for phase ${phase1._id}`);
- console.log('\n--- Test Run Completed ---');
- await (mongoCore as any).onModuleDestroy();
- process.exit(0);
- }
- runTest().catch(err => {
- console.error('Test failed:', err);
- process.exit(1);
- });
|