ampersand-chess-state
Advanced tools
Comparing version 0.1.4 to 0.1.5
@@ -402,16 +402,17 @@ var raf = require('raf'); | ||
var finalPgn = this._finalPgn; | ||
var previous = this.previous('pgn'); | ||
var valid = pgn && previous && pgn !== previous; | ||
// The new pgn is a substring of the previous | ||
if (valid && previous.indexOf(pgn) === 0) { | ||
if (!finalPgn) { | ||
return previous; | ||
if (!pgn) { | ||
return finalPgn; | ||
} | ||
// There already is a final pgn | ||
if (finalPgn) { | ||
if (finalPgn.indexOf(pgn) === 0) { | ||
return finalPgn; | ||
} | ||
else if (pgn.indexOf(finalPgn) === 0) { | ||
return pgn; | ||
} | ||
else { | ||
if (finalPgn.indexOf(pgn) === 0) { | ||
return finalPgn; | ||
} else { | ||
return pgn; | ||
} | ||
return pgn; | ||
} | ||
@@ -418,0 +419,0 @@ } else { |
{ | ||
"name": "ampersand-chess-state", | ||
"description": "An evented chess library for movement, validation and result detection built on Ampersand.js.", | ||
"version": "0.1.4", | ||
"version": "0.1.5", | ||
"author": "Luke Karrys <luke@lukekarrys.com>", | ||
@@ -6,0 +6,0 @@ "bugs": "https://github.com/lukekarrys/ampersand-chess-state/issues", |
@@ -522,2 +522,7 @@ var test = require('tape'); | ||
chess.undo(); | ||
chess.undo(); | ||
t.equal(chess.pgn, pgn.replace(' c6 4. a3 a6', '')); | ||
t.equal(chess._finalPgn, pgn); | ||
chess.redo(); | ||
t.equal(chess.pgn, pgn.replace(' 4. a3 a6', '')); | ||
@@ -536,2 +541,10 @@ t.equal(chess._finalPgn, pgn); | ||
chess.first(); | ||
t.equal(chess.pgn, ''); | ||
t.equal(chess._finalPgn, pgn + ' 5. b4 e5'); | ||
chess.last(); | ||
t.equal(chess.pgn, pgn + ' 5. b4 e5'); | ||
t.equal(chess._finalPgn, pgn + ' 5. b4 e5'); | ||
chess.pgn = '1. a4 a5 2. b4 b5'; | ||
@@ -541,3 +554,18 @@ t.equal(chess.pgn, '1. a4 a5 2. b4 b5'); | ||
chess.undo(); | ||
chess.undo(); | ||
t.equal(chess.pgn, '1. a4 a5'); | ||
t.equal(chess._finalPgn, '1. a4 a5 2. b4 b5'); | ||
chess.undo(); | ||
chess.undo(); | ||
t.equal(chess.pgn, ''); | ||
t.equal(chess._finalPgn, '1. a4 a5 2. b4 b5'); | ||
chess.redo(); | ||
chess.redo(); | ||
t.equal(chess.pgn, '1. a4 a5'); | ||
t.equal(chess._finalPgn, '1. a4 a5 2. b4 b5'); | ||
t.end(); | ||
}); |
43520
904