[ios][database] query modifiers with float values now correctly query - added 2 issue specific tests - fixes #108
This commit is contained in:
parent
7a11a8c6f9
commit
bb64cae09c
@ -219,7 +219,7 @@
|
|||||||
type:(NSString *) type
|
type:(NSString *) type
|
||||||
{
|
{
|
||||||
if ([type isEqualToString:@"number"]) {
|
if ([type isEqualToString:@"number"]) {
|
||||||
return [NSNumber numberWithInteger:value.integerValue];
|
return [NSNumber numberWithDouble:value.doubleValue];
|
||||||
} else if ([type isEqualToString:@"boolean"]) {
|
} else if ([type isEqualToString:@"boolean"]) {
|
||||||
return [NSNumber numberWithBool:value.boolValue];
|
return [NSNumber numberWithBool:value.boolValue];
|
||||||
} else {
|
} else {
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
|
import should from 'should';
|
||||||
import DatabaseContents from '../../support/DatabaseContents';
|
import DatabaseContents from '../../support/DatabaseContents';
|
||||||
|
|
||||||
function childTests({ fdescribe, it, context, firebase }) {
|
function issueTests({ fdescribe, it, context, firebase }) {
|
||||||
fdescribe('issue_100', () => {
|
fdescribe('issue_100', () => {
|
||||||
context('returned snapshot should match web API', () => {
|
context('array-like values should', () => {
|
||||||
it('returns correct child ref', async () => {
|
it('return null in returned array at positions where a key is missing', async() => {
|
||||||
// Setup
|
// Setup
|
||||||
|
|
||||||
const ref = firebase.native.database().ref('tests/issues/100');
|
const ref = firebase.native.database().ref('tests/issues/100');
|
||||||
@ -12,13 +13,62 @@ function childTests({ fdescribe, it, context, firebase }) {
|
|||||||
|
|
||||||
return ref.once('value').then((snapshot) => {
|
return ref.once('value').then((snapshot) => {
|
||||||
// Assertion
|
// Assertion
|
||||||
console.warn(JSON.stringify(snapshot.val()));
|
// console.warn(JSON.stringify(snapshot.val()));
|
||||||
|
|
||||||
snapshot.val().should.eql([null, DatabaseContents.ISSUES[100][1], DatabaseContents.ISSUES[100][2], DatabaseContents.ISSUES[100][3]]);
|
snapshot.val().should.eql([null, DatabaseContents.ISSUES[100][1], DatabaseContents.ISSUES[100][2], DatabaseContents.ISSUES[100][3]]);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
fdescribe('issue_108', () => {
|
||||||
|
context('filters using floats', () => {
|
||||||
|
it('return correct results', async() => {
|
||||||
|
// Setup
|
||||||
|
|
||||||
|
const ref = firebase.native.database().ref('tests/issues/108');
|
||||||
|
|
||||||
|
// Test
|
||||||
|
|
||||||
|
return ref
|
||||||
|
.orderByChild('latitude')
|
||||||
|
.startAt(34.00867000999119)
|
||||||
|
.endAt(34.17462960866099)
|
||||||
|
.once('value')
|
||||||
|
.then((snapshot) => {
|
||||||
|
const val = snapshot.val();
|
||||||
|
// Assertion
|
||||||
|
val.foobar.should.eql(DatabaseContents.ISSUES[108].foobar);
|
||||||
|
should.equal(Object.keys(val).length, 1);
|
||||||
|
|
||||||
|
return Promise.resolve();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it('return correct results when not using float values', async() => {
|
||||||
|
// Setup
|
||||||
|
|
||||||
|
const ref = firebase.native.database().ref('tests/issues/108');
|
||||||
|
|
||||||
|
// Test
|
||||||
|
|
||||||
|
return ref
|
||||||
|
.orderByChild('latitude')
|
||||||
|
.equalTo(37)
|
||||||
|
.once('value')
|
||||||
|
.then((snapshot) => {
|
||||||
|
const val = snapshot.val();
|
||||||
|
|
||||||
|
// Assertion
|
||||||
|
|
||||||
|
val.notAFloat.should.eql(DatabaseContents.ISSUES[108].notAFloat);
|
||||||
|
should.equal(Object.keys(val).length, 1);
|
||||||
|
|
||||||
|
return Promise.resolve();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
export default childTests;
|
export default issueTests;
|
||||||
|
@ -39,5 +39,21 @@ export default {
|
|||||||
someOtherKey: 'someOtherValue',
|
someOtherKey: 'someOtherValue',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// https://github.com/invertase/react-native-firebase/issues/108
|
||||||
|
108: {
|
||||||
|
foobar: {
|
||||||
|
name: 'Foobar Pizzas',
|
||||||
|
latitude: 34.1013717,
|
||||||
|
},
|
||||||
|
notTheFoobar: {
|
||||||
|
name: 'Not the pizza you\'re looking for',
|
||||||
|
latitude: 34.456787,
|
||||||
|
},
|
||||||
|
notAFloat: {
|
||||||
|
name: 'Not a float',
|
||||||
|
latitude: 37,
|
||||||
|
},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user