Add proper detection of Promise capabilities in tests

@logicalparadox Sorry this took so long. Tests pass on my machine, so I think this is all good :smile: