82 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			82 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 
								 | 
							
								import { expect } from "chai";
							 | 
						||
| 
								 | 
							
								import { init, Hash } from "crate";
							 | 
						||
| 
								 | 
							
								init();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// TODO: wasm_bindgen doesn't currently support exporting constants
							 | 
						||
| 
								 | 
							
								const HASH_BYTES = 32;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								describe("Hash", function () {
							 | 
						||
| 
								 | 
							
								  it("invalid", () => {
							 | 
						||
| 
								 | 
							
								    expect(() => {
							 | 
						||
| 
								 | 
							
								      new Hash([
							 | 
						||
| 
								 | 
							
								        3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
							 | 
						||
| 
								 | 
							
								        0, 0, 0, 0, 0, 0, 0, 0, 0,
							 | 
						||
| 
								 | 
							
								      ]);
							 | 
						||
| 
								 | 
							
								    }).to.throw();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    expect(() => {
							 | 
						||
| 
								 | 
							
								      new Hash([
							 | 
						||
| 
								 | 
							
								        'invalid', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
							 | 
						||
| 
								 | 
							
								        0, 0, 0, 0, 0, 0, 0,
							 | 
						||
| 
								 | 
							
								      ]);
							 | 
						||
| 
								 | 
							
								    }).to.throw();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    expect(() => {
							 | 
						||
| 
								 | 
							
								      new Hash(
							 | 
						||
| 
								 | 
							
								        "0x300000000000000000000000000000000000000000000000000000000000000000000"
							 | 
						||
| 
								 | 
							
								      );
							 | 
						||
| 
								 | 
							
								    }).to.throw();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    expect(() => {
							 | 
						||
| 
								 | 
							
								      new Hash(
							 | 
						||
| 
								 | 
							
								        "0x300000000000000000000000000000000000000000000000000000000000000"
							 | 
						||
| 
								 | 
							
								      );
							 | 
						||
| 
								 | 
							
								    }).to.throw();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    expect(() => {
							 | 
						||
| 
								 | 
							
								      new Hash(
							 | 
						||
| 
								 | 
							
								        "135693854574979916511997248057056142015550763280047535983739356259273198796800000"
							 | 
						||
| 
								 | 
							
								      );
							 | 
						||
| 
								 | 
							
								    }).to.throw();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    expect(() => {
							 | 
						||
| 
								 | 
							
								      new Hash("12345");
							 | 
						||
| 
								 | 
							
								    }).to.throw();
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  it("toString", () => {
							 | 
						||
| 
								 | 
							
								    const key = new Hash("CiDwVBFgWV9E5MvXWoLgnEgn2hK7rJikbvfWavzAQz3");
							 | 
						||
| 
								 | 
							
								    expect(key.toString()).to.eq("CiDwVBFgWV9E5MvXWoLgnEgn2hK7rJikbvfWavzAQz3");
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    const key2 = new Hash("1111111111111111111111111111BukQL");
							 | 
						||
| 
								 | 
							
								    expect(key2.toString()).to.eq("1111111111111111111111111111BukQL");
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    const key3 = new Hash("11111111111111111111111111111111");
							 | 
						||
| 
								 | 
							
								    expect(key3.toString()).to.eq("11111111111111111111111111111111");
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    const key4 = new Hash([
							 | 
						||
| 
								 | 
							
								      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
							 | 
						||
| 
								 | 
							
								      0, 0, 0, 0, 0, 0, 0,
							 | 
						||
| 
								 | 
							
								    ]);
							 | 
						||
| 
								 | 
							
								    expect(key4.toString()).to.eq("11111111111111111111111111111111");
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  it("toBytes", () => {
							 | 
						||
| 
								 | 
							
								    const key = new Hash("CiDwVBFgWV9E5MvXWoLgnEgn2hK7rJikbvfWavzAQz3");
							 | 
						||
| 
								 | 
							
								    expect(key.toBytes()).to.deep.equal(
							 | 
						||
| 
								 | 
							
								      new Uint8Array([
							 | 
						||
| 
								 | 
							
								        3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
							 | 
						||
| 
								 | 
							
								        0, 0, 0, 0, 0, 0, 0, 0,
							 | 
						||
| 
								 | 
							
								      ])
							 | 
						||
| 
								 | 
							
								    );
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    const key2 = new Hash();
							 | 
						||
| 
								 | 
							
								    expect(key2.toBytes()).to.deep.equal(
							 | 
						||
| 
								 | 
							
								      new Uint8Array([
							 | 
						||
| 
								 | 
							
								        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
							 | 
						||
| 
								 | 
							
								        0, 0, 0, 0, 0, 0, 0, 0,
							 | 
						||
| 
								 | 
							
								      ])
							 | 
						||
| 
								 | 
							
								    );
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								});
							 |