 aacb45156b
			
		
	
	aacb45156b
	
	
	
		
			
			- Install Jest for unit testing with React Testing Library - Install Playwright for end-to-end testing - Configure Jest with proper TypeScript support and module mapping - Create test setup files and utilities for both unit and e2e tests Components: * Jest configuration with coverage thresholds * Playwright configuration with browser automation * Unit tests for LoginForm, AuthContext, and useSocketIO hook * E2E tests for authentication, dashboard, and agents workflows * GitHub Actions workflow for automated testing * Mock data and API utilities for consistent testing * Test documentation with best practices Testing features: - Unit tests with 70% coverage threshold - E2E tests with API mocking and user journey testing - CI/CD integration for automated test runs - Cross-browser testing support with Playwright - Authentication system testing end-to-end 🚀 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
		
			
				
	
	
		
			121 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			121 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| var assert = require('assert');
 | |
| var Int64 = require('./Int64');
 | |
| 
 | |
| exports.setUp = function(done) {
 | |
|   done();
 | |
| };
 | |
| 
 | |
| exports.testBufferToString = function(test) {
 | |
|   var int = new Int64(0xfffaffff, 0xfffff700);
 | |
|   test.equal(
 | |
|     int.toBuffer().toString('hex'),
 | |
|     'fffafffffffff700',
 | |
|     'Buffer to string conversion'
 | |
|   );
 | |
|   test.done();
 | |
| };
 | |
| 
 | |
| exports.testBufferCopy = function(test) {
 | |
|   var src = new Int64(0xfffaffff, 0xfffff700);
 | |
|   var dst = new Buffer(8);
 | |
| 
 | |
|   src.copy(dst);
 | |
| 
 | |
|   test.deepEqual(
 | |
|     dst,
 | |
|     new Buffer([0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x00]),
 | |
|     'Copy to buffer'
 | |
|   );
 | |
| 
 | |
|   test.done();
 | |
| };
 | |
| 
 | |
| exports.testValueRepresentation = function(test) {
 | |
|   var args = [
 | |
|     [0],                     '0000000000000000', 0,
 | |
|     [1],                     '0000000000000001', 1,
 | |
|     [-1],                    'ffffffffffffffff', -1,
 | |
|     [1e18],                  '0de0b6b3a7640000', 1e18,
 | |
|     ['0001234500654321'],    '0001234500654321',     0x1234500654321,
 | |
|     ['0ff1234500654321'],    '0ff1234500654321',   0xff1234500654300, // Imprecise!
 | |
|     [0xff12345, 0x654321],   '0ff1234500654321',   0xff1234500654300, // Imprecise!
 | |
|     [0xfffaffff, 0xfffff700],'fffafffffffff700',    -0x5000000000900,
 | |
|     [0xafffffff, 0xfffff700],'affffffffffff700', -0x5000000000000800, // Imprecise!
 | |
|     ['0x0000123450654321'],  '0000123450654321',      0x123450654321,
 | |
|     ['0xFFFFFFFFFFFFFFFF'],  'ffffffffffffffff', -1
 | |
|   ];
 | |
| 
 | |
|   // Test constructor argments
 | |
| 
 | |
|   for (var i = 0; i < args.length; i += 3) {
 | |
|     var a = args[i], octets = args[i+1], number = args[i+2];
 | |
| 
 | |
|     // Create instance
 | |
|     var x = new Int64();
 | |
|     Int64.apply(x, a);
 | |
| 
 | |
|     test.equal(x.toOctetString(), octets, 'Constuctor with ' + args.join(', '));
 | |
|     test.equal(x.toNumber(true), number);
 | |
|   }
 | |
| 
 | |
|   test.done();
 | |
| };
 | |
| 
 | |
| exports.testBufferOffsets = function(test) {
 | |
|   var sourceBuffer = new Buffer(16);
 | |
|   sourceBuffer.writeUInt32BE(0xfffaffff, 2);
 | |
|   sourceBuffer.writeUInt32BE(0xfffff700, 6);
 | |
| 
 | |
|   var int = new Int64(sourceBuffer, 2);
 | |
|   assert.equal(
 | |
|     int.toBuffer().toString('hex'), 'fffafffffffff700',
 | |
|     'Construct from offset'
 | |
|   );
 | |
| 
 | |
|   var targetBuffer = new Buffer(16);
 | |
|   int.copy(targetBuffer, 4);
 | |
|   assert.equal(
 | |
|     targetBuffer.slice(4, 12).toString('hex'), 'fffafffffffff700',
 | |
|     'Copy to offset'
 | |
|   );
 | |
| 
 | |
|   test.done();
 | |
| };
 | |
| 
 | |
| exports.testInstanceOf = function(test) {
 | |
|   var x = new Int64();
 | |
|   assert(x instanceof Int64, 'Variable is not instance of Int64');
 | |
|   var y = {};
 | |
|   assert(!(y instanceof Int64), 'Object is an instance of Int64');
 | |
|   test.done();
 | |
| };
 | |
| 
 | |
| exports.testCompare = function(test) {
 | |
|   var intMin = new Int64(2147483648, 0);
 | |
|   var intMinPlusOne = new Int64(2147483648, 1);
 | |
|   var zero = new Int64(0, 0);
 | |
|   var intMaxMinusOne = new Int64(2147483647, 4294967294);
 | |
|   var intMax = new Int64(2147483647, 4294967295);
 | |
|   assert(intMin.compare(intMinPlusOne) < 0, "INT64_MIN is not less than INT64_MIN+1");
 | |
|   assert(intMin.compare(zero) < 0, "INT64_MIN is not less than 0");
 | |
|   assert(intMin.compare(zero) < intMax, "INT64_MIN is not less than INT64_MAX");
 | |
|   assert(intMax.compare(intMaxMinusOne) > 0, "INT64_MAX is not greater than INT64_MAX-1");
 | |
|   assert(intMax.compare(zero) > 0, "INT64_MAX is not greater than 0");
 | |
|   assert(intMax.compare(intMin) > 0, "INT64_MAX is not greater than INT_MIN");
 | |
|   test.done();
 | |
| };
 | |
| 
 | |
| exports.testEquals = function(test) {
 | |
|   var intMin = new Int64(2147483648, 0);
 | |
|   var zero = new Int64(0, 0);
 | |
|   var intMax = new Int64(2147483647, 4294967295);
 | |
|   assert(intMin.equals(intMin), "INT64_MIN !== INT64_MIN");
 | |
|   assert(intMax.equals(intMax), "INT64_MAX !== INT64_MAX");
 | |
|   assert(zero.equals(zero), "0 !== 0");
 | |
|   assert(!intMin.equals(zero), "INT64_MIN === 0");
 | |
|   assert(!intMin.equals(intMax), "INT64_MIN === INT64_MAX");
 | |
|   assert(!intMax.equals(zero), "INT64_MAX === 0");
 | |
|   assert(!intMax.equals(intMin), "INT64_MAX === INT64_MIN");
 | |
|   test.done();
 | |
| };
 |